我是一个n00b C++程序员,我想知道如何从文本文件读取特定行。例如,如果我有一个文本文件包含以下行:如何使用fstream从文件读取特定行(C++)
1) Hello
2) HELLO
3) hEllO
我该如何去阅读,让我们说第2行,并将其打印在屏幕上?这是我到目前为止..
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string sLine = "";
ifstream read;
read.open("input.txt");
// Stuck here
while(!read.eof()) {
getline(read,1);
cout << sLine;
}
// End stuck
read.close();
return 0;
}
在评论部分bewteen代码是我被卡住的地方。谢谢!!
与您使用的eof http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – Niall 2014-10-09 21:29:28
文件是对指定的字节块的抽象;因此,没有办法找到文件中特定行的起始位置,而无需扫描所有前面的字节并计算换行符。如果您需要检索许多特定行,则可以在查找与每行开始对应的偏移量后扫描文件,然后使用此映射进行快速查找。 – Cameron 2014-10-09 21:30:19
你期望这样做:'getline(read,1)'? – Galik 2014-10-09 21:58:01