【发布时间】:2016-01-12 17:19:48
【问题描述】:
我注意到有一些类似的问题,但我找不到正确的答案。
我想比较两个字符串 - 第一个由用户给出,第二个写入外部 .txt 文件。我几乎不会注意到这个问题,因为 在 Windows 下一切正常,if 中的条件对于某些特定值是正确的,但在 Linux 中却不是(它正在编译,但没有给出正确的结果)。我想也许 cin 在 Linux 下添加了一些额外的字符(如 \n 等),但两个字符串上的 size() 值相同,应该是这样。
我应该改变什么?
string firststr, secondstr;
fstream dFile;
dFile.open("dfile.txt", ios::in);
if(dFile.good())
{
while (!dFile.eof())
{
dFile >> secondstr; //string from file
}
cin >> firststr;
if(firststr==secondstr) cout <<"OK!";
好的! 在 Windows 下显示,在 Linux 下不显示。
我也使用了getline(cin,firststr) - 没有成功。
我需要有一个代码在 Windows(我已经有)和 Linux 下都可以工作。
我希望这两个字符串都是某个类的成员这一事实不会改变任何事情。
提前感谢任何解决方案。
【问题讨论】:
-
查看this question 了解您的循环错误的原因。
标签: c++ linux string compare cin