将字符串与文件c ++中的另一个字符串进行比较

时间:2012-01-16 11:43:39

标签: c++ ubuntu

我正在尝试将getline(file,line)的字符串与std::string s="mmee"

进行比较
if (line==s){}

但这从未执行过。为什么??在我有的文件里面:

mmee
hello
hey

如何修剪空格或从字符串行输入?

4 个答案:

答案 0 :(得分:1)

您的代码是正确的。

请检查输入文件以确认没有前导或尾随空格。

答案 1 :(得分:0)

首先,为什么你认为这会被执行。

mmee hello hey 是文件中同一行的一部分,当你执行 getline 行时将包含整行,而不仅仅是 mmee < / strong>即可。因此if条件会失败。

请查看此link以修剪空格。

答案 2 :(得分:0)

默认情况下,

std::getline()会读取第一个换行符。您可以指定要将函数读取到的字符,如下所示:

getline(file, line, ' ');  // not the space between single quote chars

这只会读取你的示例文件中的“mmee”部分(mmee hello hey)。

编辑:这是我读你的例子的方式。编辑OP的人只假设输入文件为mmee\nhello\nhey

答案 3 :(得分:0)

您可以使用

删除空格

std :: remove(astring.begin(),astring.end(),'');

然后你可以比较字符串。

查看链接:: http://www.cplusplus.com/forum/beginner/863/

您可以与字符串进行比较:http://www.cplusplus.com/reference/string/string/compare/