ifstream input;
string filename="file.txt";
string word;
input.open(filename.c_str());
int len=word.length();
while(getline(input,word)) {
if(word.at(len-1)='a') {
cout<<word;
}
}
当我执行它时,编译器发出运行时错误我不明白为什么?我想找到最后一个字符的单词&#39; a&#39;感谢
答案 0 :(得分:2)
int len=word.length();
应该在循环中。
目前,len
为0
。
您还有一个拼写错误=
(分配)应该是==
(测试是否相等)
顺便说一句,从C ++ 11开始,你可以使用word.back()
。
你应该检查字符串是不是空的。
结果:
while (getline(input, word)) {
if (!word.empty() && word.back() == 'a') {
std::cout << word;
}
}