Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符串中的字符与特定字符进行比较时出现问题_C++ - Fatal编程技术网

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]!=”)