2011-12-17 6 views
1

私はC++の学習者です。私は基本的なC++プロジェクトをコーディングしようとしています。基本的な自動化システムです。ナビゲーションメニューがあります。C++の関数と '識別子が見つかりません'エラー

Choose an option : 
    1) Add a new customer 
    2) List all customers 
    ... 

は、ユーザーの選択を含むnav変数、があります。これは私のソースコードです:

まもなくで
#include <stdio.h> 
#include <clocale> 

int nav;  

void main() 
{ 
    setlocale(LC_ALL,"turkish"); 
    navigasyon(); 
    switch (nav) // checking 'nav' variable which assigned in navigasyon() 
    case "1" : 
     printf("Now you are adding a new customer"); 
    break; 
    case "2" : 
     printf("Now you are listing all customers"); 
    break; 
} 

void navigasyon() 
{ 
    printf("Choose an option \n"); 
printf("1) Add a new customer\n"); 
printf("2) List all customers\n"); 

scanf("%d", &nav); // assigning '`nav' variable 
} 

、メインで ()、navigasyon()ユーザーがnavにそれをassinging 1または2を選択し、navigasyon()、ナビゲーションメニューが表示されます。最後にnavとスイッチケースを確認してください。

しかし、私は'navigasyon': identifier not foundエラーが発生しています。

+1

[関数プロトタイプ](http://en.wikipedia.org/wiki/Function_prototype) –

+1

例外#include 'ここにはC++がありません。 – n0rd

答えて

8

mainの前にnavigasyonと宣言してください。

+0

私は 'setlocale(LC_ALL、" turkish ");'をすべての関数に書きますか? – Eray

3

あなたの#include文がこの

void navigasyon(); 

を書く後またあなたがメインの前に機能を置くことができる機能最初

を宣言する必要があります。 C++では、関数がmainの前に置かれていない限り、関数を使用する前に宣言しなければなりません。

+3

Nit:それは宣言であり、定義ではありません。 – hvd

3

mainnavigasyonの機能を使用して定義しています。 mainnavigasyonの場所を切り替えるか、mainの前にnavigasyonと宣言する必要があります。

2

メインの上に「navigasyon」を配置します。

C++では、関数が使用される前に宣言されている必要があります。これは、関数の前に関数全体を置くか、または前のシグネチャのみを持つ前方宣言によって行うことができます。

2

あなたは、ファイルの先頭にnavigasyon()関数の宣言が必要なので、それはmain()をコンパイルするとき、コンパイラはそれについて知っている:

void navigasyon(); 
1

あなたがそれを使用する前に、メソッドを宣言する必要があります。メインの前に次の行を追加します。

static void navigasyon(); 

これはローカルのみ(静的)関数としてnavigasyon宣言します。さらに使用するには、デクリレーションを.hファイルに移動し、静的ファイルを削除し、もちろんこの.hファイルをインクルードする必要があります。

関連する問題