这是我的代码。这里dict.txt是链接文件。字符串搜索从包含字符串的向量(可能)初始化。我使用getline从文件中读取并将每行存储在字符串temp中。现在的问题是,当我执行search == temp
时输出为false,这应该是真的。我必须打印字典文件中的字符串。所以我从文件中提取每一行并进行比较,但是这种相等性在某种程度上被窃听,或者我在某处出现问题。
ifstream infile("namenumdict.txt");
string search="", temp="";
int k=0;
for(int i=0; i<possible.size(); i++)
{
search=possible[i];
while(getline(infile, temp))
{
if(search==temp)
{
fout<<temp<<endl;
k++;
}
}
}
我已经通过调试检查了所有东西都运行良好。正在初始化search
以及temp
。
请让我知道这个问题。 感谢
答案 0 :(得分:2)
有几种可能的陷阱。 Windows以\r\n
结束行,但Linux仅\n
。如果您在Linux上运行此操作但使用来自Windows的文件,则该字符串将包含\r
之前显示的\n
。检查字符串末尾的\r
并将其删除。
另一种可能性是你将“WORD”与“word”进行比较。在比较之前处理两个字符串的小写(或两者都是大写)。
过去的爆炸:\r\n
来自古老的电传打字机时代。他们必须做回车(\r
)以回到行首,然后换行(\n
)以回到新行。