2011-12-17 90 views
1

我是一名C++學習者。我試圖編寫一個基本的C++項目。這是基本的自動化系統。它有一個導航菜單。C++函數和'identifier not found'錯誤

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 
} 

在不久 在main(),navigasyon()將顯示導航菜單,用戶選擇1或2,然後navigasyon()它assinging到nav。最後用switch-case檢查nav

但我得到'navigasyon': identifier not found錯誤。

+1

[函數原型](http://en.wikipedia.org/wiki/Function_prototype) – 2011-12-17 22:37:10

+1

除#include '我在這裏沒有看到任何C++。 – n0rd 2011-12-17 22:39:39

回答

8

您應該在main之前聲明navigasyon

+0

我有寫'setlocale(LC_ALL,「土耳其語」);'所有功能? – Eray 2011-12-17 22:43:48

3

您需要聲明函數第一

您的#includes之後的語句寫這

void navigasyon(); 

或者你可以把函數之前爲主。在C++中,函數必須在使用之前進行聲明,除非它放在main之前。

+3

Nit:這是一個聲明,而不是一個定義。 – hvd 2011-12-17 22:36:26

3

在定義它之前,您可以使用navigasyon函數main。您需要在main之前切換mainnavigasyon的位置,或者聲明navigasyon

2

將'navigasyon'放在主要的上方。

C++要求函數在使用之前聲明。這可以通過在使用之前放置整個函數或者通過前向聲明來完成,在那裏你只有之前的簽名。

2

你需要在你的文件的開頭navigasyon()函數的聲明,所以編譯器知道它時,它編譯main()

void navigasyon(); 
1

您使用前需要先申報方法。在您的主要之前添加以下行:

static void navigasyon(); 

此聲明navigasyon作爲本地唯一(靜態)函數。爲了進一步使用,你應該將decleration移動到一個.h文件中,移除靜態,當然也包括這個.h文件。

相關問題