【发布时间】:2013-01-03 08:21:17
【问题描述】:
我正在尝试将字符串与 const char* 进行比较。
std::string line;
std::fstream tmpl;
我使用 getline 用 fstream 文件中的一些输入填充字符串变量:
getline(tmpl, line);
然后我想将这条线与某些东西进行比较,例如:
if(line == "$something")
由于某种原因,它总是返回 false。 我已经尝试了很多不同的东西,但都没有成功(要么让它总是返回 false 要么总是 true)
为什么以及如何解决此问题?我错过了什么? getline 不是正确的方法吗?
问题已修复,使用 string.find()。当我尝试不同的事情时,我误用了它。然而,与== 比较的问题仍然悬而未决。
【问题讨论】:
-
您是否尝试过打印类似:
std::cout << "[" << line << "]" << std::endl;的内容?它可能有助于调试。此外,$只是您示例中字符串的一部分,对吧? -
确保该行不包含空格或您缺少的任何其他字符。正如鲁本斯所说,最好的办法是在一些括号内输出您要比较的字符串。
-
哇,没关系。使用
std::cout << "[" << line << "]" << std::endl;的结果实际上是]$something -
似乎该问题已通过进一步尝试解决。输出符合预期
[$something]但仍不匹配"$something"
标签: string char compare fstream getline