c++ - 从文件 C++ 中读取 3 个整数

标签 c++ file fstream

我想从一个文件中读取多个变量并将它们存储在一个对象中,但它不起作用。

文件示例:

De vedettn 
Wout Wouters
14 7 2005

我写的代码:

string naam, leider;
int dag, maand, jaar;
ifstream myfile ("file_ploeg.txt");
if (myfile.is_open())
{
    cout << "Entering file" << endl;
    while ( myfile.good() )
    {
        cout << "Entering while" << endl;
        getline (myfile,naam);
        cin >> dag >> maand >> jaar;
        getline (myfile,leider);
    }
    Datum* datumOBploeg = new Datum(dag,maand,jaar);

    Wielerploeg* wielerploegOB = new Wielerploeg(naam, *datumOBploeg,leider);
    myfile.close();
    cout << "\n";
    return wielerploegOB;
}

最佳答案

看起来您正在乱序阅读您的行(至少根据您的示例文件)。

while ( myfile.good() )
{
    cout << "Entering while" << endl;
    getline (myfile,naam);
    cin >> dag >> maand >> jaar;
    getline (myfile,leider);
}

应该是:

while ( myfile.good() )
{
    cout << "Entering while" << endl;
    getline (myfile,naam);
    getline (myfile,leider);        // reordered this line
    myfile >> dag >> maand >> jaar; // use myfile instead of cin
}

另外,如果我是你,我会检查你函数中的其余代码,确保你没有滥用指针。

关于c++ - 从文件 C++ 中读取 3 个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026464/

相关文章:

C++,如何在进程或线程之间共享数据

c++ - 禁用单元测试 MSTest

c++ - 将相对函数指针作为参数传递

c - mmap 对于不同的文件大小表现不同

c++ - ifstream 和 ofstream 或 fstream 使用 in 和 out

c++ ifstream只读一个字符串需要同时读入

c++ - 如何在 Cygwin 中使用 OpenGL 和 GLUT

c++ - 从 C++ 控制台应用程序上传 txt 文件

c - 按名称或年份对飓风进行排序的 C 程序

c++ - 像访问文件流一样访问一 block 内存(/C/C++数组)