2012-09-22 2 views
0

Ceci est mon premier thred ici!Test de glossaire de suédois en anglais

Ce code est pour un test de glossaire du suédois vers l'anglais.

J'ai un problème avec (*it).engelska)! Et pourquoi ne puis-je pas utiliser (*it).engelska dans ce code?

Merci d'avance !!

void prov(list<Glosor> lista) 
{ 
     string testet; 
     int santal = 0; 
     int rsvar = 0; 
     list<Glosor>::iterator it; 
     for(it = lista.begin(); it != lista.end(); it++){ 
      cout << (*it).svenska << " betyder på engelska: "; // *it writes the swedish word for translate. 
      getline(cin, testet); //Here you write the english word and "if" function test if it's correct. 
      if(testet == (*it).engelska){ 
       cout << "Ratt svar!\n"; 
       rsvar++; 
       } 
      else{ 
      cout << "Tyvärr fel svar rätt svar är: "<< (*it).engelska) << endl; // Here i use "it" to write the correct answare if you guess wrong. But it keep telling me "error: expected ';' before ')' token" 
      } 
      santal++; 
     } 
     cout << "Du hade " << rsvar << " rätt svar av " << santal << " möjliga" << endl; 
} 
+1

Il serait utile si vous pouviez expliquer exactement pourquoi "je ne peux pas utiliser (* it) .engelska)". Quel message d'erreur obtenez-vous? Encore plus utile serait la définition de la classe/structure "Glosor". Peut-être que le champ "engelska" est marqué "privé"? Si "prov" est une fonction globale, alors le membre "engelska" doit être rendu "public". –

+0

@dasblinkenlight je pense que le problème est dans le '(* it) .engelska)'. n'est-ce pas? –

+1

@RegisteredUser Oui, je pense que OP a copié/collé la ligne 'if', mais a oublié de supprimer la parenthèse fermante de son instruction' if'. – dasblinkenlight

Répondre

3

Il y a une parenthèse fermante dans la ligne 15 après engelska qui ne dispose pas d'une parenthèse d'ouverture correspondant:

cout << "Tyvärr fel svar rätt svar är: "<< (*it).engelska) << endl; 
//       here------------------------^ 

également dans la boucle FOR @ ligne 7, utilisez ++ au lieu de celui-ci ++ . Le premier ne crée pas de copie de l'itérateur, ce qui signifie qu'il fonctionne plus rapidement.

+0

+1 bonne prise !!! – dasblinkenlight

+0

@dasblinkenlight merci monsieur –

+0

merci monsieur je suis tellement stupide –

Questions connexes