正在比较文本文件中的字符串
Comparing strings from a text file
我正在解析一个文本文件,由于某些原因string::compare()
无法按预期工作。
文本文件:http://pastebin.com/raw.php?i=WZDWmb56
读取函数(循环时从内部调用):
string StopName = "***";
bool Person::ReadOnePersonFromFile(ifstream& fin)
{
getline(fin,m_name);
cout << m_name << endl;
if( m_name == StopName )
return false;
fin >> m_id;
fin.ignore(50,'n');
return true;
}
每当到达"***"
时,if( m_name == StopName )
不返回true
。发生了什么事?
此函数适用于Windows(Visual Studio)。我目前正在Linux上编译这个。这与文本的存储方式有关吗?
看起来您在代码中比较的是StopName
而不是Stop
,因此永远不会检查"***"(假设Stop
和StopName
不是一回事)。
找到了我的答案。我相信这是因为换行符在Windows上的编码方式。
Windows: rn (CR + LF)
Linux: n
Mac: r
我不得不用dos2unix
将我的Windows文本文件转换为Unix文本文件。这个程序运行良好。
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 如何打开并写入一个名称取自C++中字符串的文件
- 如何从二进制文件中读取字符串
- 如何在 c++ 中使用 getline 从文件中读取字符串?
- 将字符串与文件上的数据进行比较
- 用户输入字符串的文件附加问题..C++
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 使用文件内容作为硬编码字符串
- 将文件复制到自定义位置,存在字符串转换问题
- 将二进制字符串/文件内容从 c++ 传递到节点 js
- 在字符串.h文件中调用函数而不带对象
- 将带有引号和逗号的字符串文件读入字符串数组
- 如何从字符串/文件中分离字符和整数
- 将字符串文件存储到动态数组中
- 如何用C++将字符串文件Txt解析成数组
- 如何用Boost::Spirit解析复杂的字符串文件
- 如何从C语言的第二行读取字符串文件
- 一个很好的性能替代PHP-字符串/文件操作