C++ 比较文本文件中的字符串
我正在分析一个文本文件,由于某种原因,C++ 比较文本文件中的字符串,c++,linux,text,C++,Linux,Text,我正在分析一个文本文件,由于某种原因,string::compare()无法正常工作 文本文件: 读取函数(从while循环内部调用): string StopName=“***”; bool Person::ReadOnePersonFromFile(ifstream&fin) { getline(财务、管理单位名称); 无法识别; 忽略(50,“\n”); 返回true; } 无论何时到达“***”,if(m_name==StopName)都不会返回true。发生了什么事 此函数适用于Wi
string::compare()
无法正常工作
文本文件:
读取函数(从while循环内部调用):
string StopName=“***”;
bool Person::ReadOnePersonFromFile(ifstream&fin)
{
getline(财务、管理单位名称);
无法识别;
忽略(50,“\n”);
返回true;
}
无论何时到达“***”
,if(m_name==StopName)都不会返回true
。发生了什么事
此函数适用于Windows(Visual Studio)。我目前正在Linux上编译这个。这与文本的存储方式有关吗 看起来您正在比较代码中的
StopName
而不是Stop
,因此“***”从未被选中(假设Stop
和StopName
不是一回事)。找到了我的答案。我相信这是因为换行符在Windows上的编码方式
Windows: \r\n (CR + LF)
Linux: \n
Mac: \r
我必须使用
dos2unix
将Windows文本文件转换为Unix文本文件。程序运行良好 哎呀,那是一个c/p错误。应该是StopName
Windows: \r\n (CR + LF)
Linux: \n
Mac: \r