我正在尝试将字符串与const char *进行比较。
std::string line;
std::fstream tmpl;
我使用getline填充字符串变量和来自fstream文件的一些输入:
getline(tmpl, line);
然后我想比较一下这一行:例如:
if(line == "$something")
由于某种原因,它总是返回false。 我已经尝试了很多不同的东西,但没有成功(要么让它总是假的,要么总是真的)
为什么以及如何解决此问题?我错过了什么? getline不是正确的方法吗?
使用string.find()
问题已修复。当我尝试不同的东西时,我误用了它。但是,与==
进行比较的问题仍然存在。
答案 0 :(得分:0)
更改您的代码以使用它:
if (strcmp(line,"$something")==0)
答案 1 :(得分:0)
尝试下面的代码..我认为它会起作用......
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
string sample ="hi";
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
if(line.compare(sample) == 0)
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
答案 2 :(得分:0)
好的,现在尝试以下代码......
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
string sample ="hi";
string datatoprocess ="";
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
datatoprocess = datatoprocess + line;
}
unsigned found = datatoprocess.find(sample);
if (found!=std::string::npos)
std::cout << "Record Found";
myfile.close();
}
else cout << "Unable to open file";
return 0;
}