2016-06-19 1 views
-7
int main() 
{ 
    introduction(); 
    int x; 
    cin >> x; 
    if (x == 1) 
     cout << endl << "1. Only state true information." << endl << "2. Do not copy this servey and distribute it AT ALL." << endl << "3. Do not falsely advertise this survey anywhere." << endl << endl; 
    cout << "(Press 1 to start survey)" << endl; 
    int y; 
    cin >> y; 
    if (y == 1) 
     int gender = askGender(); 
    int job = askJobOrNot(); 
    int sport = askFavSport(); 
    int music = askFavMusicGenre(); 
    int birth = askBirthPlace(); 
    int colour = askFavColour(); 
    cout << endl << "Thank you, you have successfully completed the survey! (: " << endl; 
    cout << "(Press 1 to show results, and press 2 to quit)" << endl; 
    int s; 
    cin >> s; 
    if (s == 1) 
     printResults(gender, job, sport, music, birth, colour); 
    if (s == 2) 
     quitProgram(); 
    return 0; 
} 

Quand je compile ce code, il me donne une erreur sur la ligne 23 me disant que la variable « genre » (que je mets comme argument dans la fonction "printResults") est un identificateur non déclaré, même si je l'ai clairement déclaré 11 lignes avant (ligne 12). Pourquoi cela est-il ainsi?Pourquoi cela me dire que « genre » est un identificateur non déclaré en ligne

+4

Vous avez déclaré 'gender' dans le cadre de l'instruction' if'. Il est parti au moment où vous voulez l'utiliser. – user2296177

+0

La variable est déclarée dans la portée de l'instruction 'if()' précédente uniquement. –

+0

Peut-être que cela clarifiera pourquoi cela se produit: http://en.cppreference.com/w/cpp/language/scope – Jack

Répondre

2

Modifier ceci:

if (y == 1) 
    int gender = askGender(); 

à ceci:

int gender; 
if (y == 1) 
    gender = askGender(); 

Ou mieux encore ceci:

int gender = 0; // default: 0 
if (y == 1) 
    gender = askGender();