C++ 将字符串中的字符与特定字符进行比较时出现问题
我试图将字符串变量中的最后一个字符与两个特定字符中的一个进行比较,以便发出循环结束的信号 循环开始时,将按计划收集字符,但是循环不会退出,即使它应该检测到要退出的给定字符 循环类似于此:C++ 将字符串中的字符与特定字符进行比较时出现问题,c++,C++,我试图将字符串变量中的最后一个字符与两个特定字符中的一个进行比较,以便发出循环结束的信号 循环开始时,将按计划收集字符,但是循环不会退出,即使它应该检测到要退出的给定字符 循环类似于此: string svar; string temp; while(svar[svar.size()-1] != '.') { istream << temp; svar += temp; } stringsvar; 字符串温度; 而(svar[svar.size()-1]!='。) { istre
string svar;
string temp;
while(svar[svar.size()-1] != '.')
{
istream << temp;
svar += temp;
}
stringsvar;
字符串温度;
而(svar[svar.size()-1]!='。)
{
istream我想你真的是指istream>>temp
?至于你的问题,你能试着创建一个并向我们展示一下吗?以及一些导致问题发生的示例输入?你已经试着用调试器一步一步地检查代码,看看svar
和temp
实际上是什么?或者至少添加dome prin变量的输出(例如,在引号内,确保没有尾随的意外空格)?您每次都在更新svar的大小(svar+=temp;)。这就是为什么循环不会结束svar
开始为空。那么svar[svar.size()-1]是什么呢
translate to?除了istream>>temp
之外,您还应该检查流的状态。如果到达流的结尾或者在到达“.”字符之前出现读取错误,会发生什么情况?然后您将无休止地循环。如下所示进行修复:while(istream&&svar[svar.size()-1]!=”)