我正在尝试在其他单词后显示准确的单词,其中包含8个字符。不幸的是,显示有关字符串下标超出范围的错误。我知道问题在于循环,但我不知道如何解决它。为什么“行[j]!='('”不能工作?
getline(myFile, line);
size_t pos = line.find(arrayTypeOne[i]); //finding position
if (pos != string::npos)
{
for (int j = pos + 9; line[j] != '('; j++)
cout << line[j];
}//if
我解决了。问题出在不同的地方。我很抱歉,下次我会三思而后行。感谢您的帮助
答案 0 :(得分:0)
字符串中可能没有'('。在这种情况下,您不断检查j
变量,而不检查j
变量是否已超过{{1} }。
我建议添加和条件,检查line.length()
是否超过字符串的长度。
编辑1:再次搜索 你能避免循环并使用:
j