我正在尝试将getline(file,line)
的字符串与std::string s="mmee"
:
if (line==s){}
但这从未执行过。为什么??在我有的文件里面:
mmee
hello
hey
如何修剪空格或从字符串行输入?
答案 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/