这是我在这里的第一个线程!
此代码用于从瑞典语到英语的词汇表测试。
我对 (*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;
}
最佳答案
engelska
之后的第 15 行中有一个右括号没有匹配的左括号:
cout << "Tyvärr fel svar rätt svar är: "<< (*it).engelska) << endl;
// here------------------------^
同样在第 7 行的 FOR
循环中,使用++it 而不是 it++。前者不创建迭代器的拷贝,这意味着它执行得更快。
关于c++ - 从瑞典语到英语的词汇表测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542954/