我要求用户输入一个单词然后让我的程序将它与输入的.txt文件进行比较 但即使我在data.txt中输入一个单词,它仍然会执行false。
//------------in my data.txt---------
// Banana Bed Today
// Apples Chair Window
// Corn Tomorrow Hive
string testData;
cout<<"enter Data: ";
cin>>testData;
for(i=0; i<s.size()-1; i++){
if (testData.compare(s[i]->name) == 0)
cout<<"Right\n";
if (youkno.compare(s[i]->name) != 0)
cout<<"Wrong\n";
}
如果我提示香蕉然后输出出错的
答案 0 :(得分:5)
如果替换:
for(i=0; i<s.size()-1; i++){
使用:
for(i=0; i<s.size(); i++){ // Adjusting to check last entry as well.
cout << "[" << s[i]->name << "][" << testData << "]" << endl;
你可能会发现它变得非常明显。很可能你的一个字符串不是你想象的那样。
答案 1 :(得分:1)
s[i]->name
中的内容是什么?如果您从文件中读取该数据,则可能已将行结尾包含在name
变量中。
另外,为什么不使用operator==
?
for(i=0; i<s.size(); i++)
否则,您不会比较s