用C ++读取txt文件的一部分

时间:2013-05-06 09:20:05

标签: c++ file operation

我有一个关于用C ++读取*.txt文件的问题。我正在尝试仅读取[start][end]等特定符号之间的部分数据。

我怎么能这样做?

我知道如何打开和阅读整个文件,但我不知道如何只阅读其中的一部分有这些要求。

3 个答案:

答案 0 :(得分:1)

使用std::stringstd::getline过滤掉行并从那里开始。例如:

std::ifstream input("someText.txt");
std::string line;
unsigned int counter = 0;
while (std::getline(input, line))
{
    std::cout << "line " << counter << " reads: " << line << std::endl;
    counter++;
}

此外,您可以使用substr()类的std::string方法过滤子字符串。您还可以使用可选的第三个参数(即标记化器)使用std::getline对单词(而不是行)进行标记。例如:

std::ifstream input("someText.txt");
std::string word;
unsigned int counter = 0;
while (std::getline(input, word, ' '))
{
    std::cout << "word #" << counter << " is: " << word << std::endl;
    counter++;
}

答案 1 :(得分:0)

这里的方法是逐字阅读,直到你得到想要的开始标记,然后你读取并保存所有单词,直到读完结束标记。

答案 2 :(得分:0)

如果您要自己创建.txt文件,请以结构化方式创建它,在开头保留不同块的偏移量和大小。如果是这样,您可以从头开始读取所需数据块的偏移量,并使用fseek(或类似)跳转到那里。否则,你必须逐字阅读。