一、函数功能说明
函数名 | 说明 | |
---|---|---|
1 | CompareFileFileds() | 按字符读取或按行读取txt文件,然后使用string::find() 函数进行查找指定字段,若查到则返回0,未查到则返回-1。 |
二、 代码
方法1.使用"<<"运算符
说明:读取字符遇到空格则停止
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int CompareFileFileds(string filePath, string compareFileds)
{
fstream fs;
fs.open(filePath);
if (fs.fail())
{
fs.close();
cout << "fstream fail!" << endl;
return -1;
}
string fileString;
while (fs >> fileString) //读取字符直到遇到空格
{
int index = fileString.find(compareFileds, 1);
if (index > 0)
{
cout << "compare fileds index : " << index << endl;
return 0;
}
}
cout << "not find compareFileds!" << endl;
return -1;
}
int main()
{
string filePath = "C:\\Users\\ad\\Desktop\\file1.txt";
string compareFileds = "ABC";
int ret = CompareFileFileds(filePath, compareFileds);
if (ret == 0)
{
cout << "Compare sucess!" << endl;
}
else
{
cout << "Compare fail!" << endl;
}
system("pause");
return 0;
}
方法2.使用string::getline()
说明:按行读取,即使一行中的存在空格也可以全部读取
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int CompareFileFileds(string filePath, string compareFileds)
{
fstream fs;
fs.open(filePath);
if (fs.fail())
{
fs.close();
cout << "fstream fail!" << endl;
return -1;
}
string fileString;
while (getline(fs,fileString)) //读取一行
{
int index = fileString.find(compareFileds, 1);
if (index > 0)
{
cout << "compare fileds index : " << index << endl;
return 0;
}
}
cout << "not find compareFileds!" << endl;
return -1;
}
int main()
{
string filePath = "C:\\Users\\ad\\Desktop\\file1.txt";
string compareFileds = "ABC";
int ret = CompareFileFileds(filePath, compareFileds);
if (ret == 0)
{
cout << "Compare sucess!" << endl;
}
else
{
cout << "Compare fail!" << endl;
}
system("pause");
return 0;
}