0

これは私の最初のスレッドです。

このコードは、スウェーデン語から英語への用語集テスト用です。

問題があり(*it).engelska)ます ! そして、なぜ私(*it).engelskaはこのコードで使用できないのですか?

よろしくお願いします!

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;
}
4

1 に答える 1

3

15 行目に閉じ括弧があり、その後engelskaに対応する開き括弧がありません。

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

また、FOR7 行目のループでは、it++ の代わりに ++it を使用します。前者はイテレータのコピーを作成しないため、パフォーマンスが向上します。

于 2012-09-22T10:30:15.863 に答える