我正试图扫描一个.txt文件的内容,以便与用户的int输入进行比较,一旦发现匹配的值,就将其写入的行删除.该文件不只有数值。例如文件中包含的内容。" hello world 505 " " hello world 506 " 等。
到目前为止,我的代码能够进行比较(行的长度不一样),但我不知道如何将文件指针移动到找到所述值的行。
void comparisoniD2 (int a) {
int x[ countLinesOf() ];
ifstream readFile;
readFile.open("ClientList.txt");
string str;
for (int i = 0; i< countLinesOf();i++){
while (getline(readFile, str)) {
reverseStr2(str);
str.erase(3);
reverseStr2(str);
stringstream geek(str);
geek >> x[i];
if( x[i]==a ){
cout<<a<<" is equal to "<<x[i]<<endl;
break;
}
}
}
readFile.close();
}
如果你想在同一个文件中做这些事情,那就有点困难了。
例如,你可以打开同一个文件两次:读取字符串和保存字符串,你的循环将是:读取字符串,保存字符串(如果它不包含合适的数字)。
另一个麻烦是要把文件切成较小的尺寸。你可以使用 boost::filesystem 或者 native api。