该项目
我想我会制作一个程序,该程序使用以下语法获取文件:old_word:new_word
使语法更改更容易。我有其他计划,但现在该计划的核心无法正常工作。
问题
我很久没有使用 C++,所以我还在学习。我正在使用别人的字符串替换功能,但它陷入了无限循环。该函数包含一些我不熟悉的语法,所以我不知道它为什么会失败。所有其他函数都正确返回。
字符串替换函数如下:
//!Not my work
void replaceAll(std::string& str, std::string& from, std::string& to) {
size_t start_pos = 0;
while((start_pos = str.find(from, start_pos)) < std::string::npos) {
str.replace(start_pos, from.length(), to);
start_pos += to.length();
}
}
程序在此循环中失败:
for(int secInd=0; secInd<members; secInd++)
{
replaceAll(line[index],toStrings[secInd],fromStrings[secInd]);
}
line
getline
是从函数中获得的缓冲区。toStrings
从语言定义文件中加载,fromStrings 也是如此。
谁能告诉我为什么这会进入无限循环并可能告诉我如何解决它?如果您需要,完整的源代码位于http://pastebin.com/zXFFvUSm 。