如何读取特定文件fstream

How to read specific file fstream?

本文关键字:文件 fstream 读取 何读取      更新时间:2023-10-16

我有一个data.txt文件,它的内容是:

[exe1]
1 0 2 9 3 8
----------

[exe2]

----------
10 2 9 3 8:0

我想读第2行:1 0 2 9 3 8。但我的输出只有1

我的代码:

#include <iostream>
#include <fstream>
#include <limits>
#include<string>
std::fstream& GotoLine(std::fstream& file, unsigned int num) {
    file.seekg(std::ios::beg);
    for (int i = 0; i < num - 1; ++i) {
        file.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
    }
    return file;
}
int main() {

        using namespace std;
        fstream file("data.txt");
        GotoLine(file, 2);
        std::string line2;
        file >> line2;
        std::cout << line2;
        cin.get();
        return 0;
}

我的问题是什么?对不起,我是编程新手。

file >> line2;将停止读取第一个空白,因此只读取"1",因为提取operator >>使用空间作为分母。

您可能希望使用getline作为getline(file,line2)

输入运算符>>读取空格分隔的字符串,如果要读取整行,则需要使用std::getline:

std::string line2;
std::getline(file, line);