为什么从文件中读取整数到2d向量会导致所有值都为零?

时间:2016-12-11 15:27:59

标签: c++

我正在尝试将文本文件中的整数值矩阵读入2d向量。

输入数据:

  

4 5

     

0 -0.5 -3 -1 -4

     

40 1 1 1 1

     

10 -2 -1 1 1

     

10 0 1 0 -1

我的代码:

    ifstream InFile("Simplex_EX1.txt");

    if (!InFile.is_open())
        cout << "File could not be opened correctly";

    vector<vector<int>> MyData;
    int Rows, Columns;
    InFile >> Rows >> Columns; // read first line - working

    MyData.resize(Rows);
    for (int i = 0; i < Rows; i++)
        MyData[i].resize(Columns);

    for (int i = 0; i < Rows; i++)
        for (int j = 0; j < Columns; j++)
            InFile >> MyData[i][j]; // read the rest - not working

    InFile.close();

所以我成功读取了第一行,因此我正确地调整了向量。但是,最终的向量只是零。谁能告诉我我做错了什么?拜托,谢谢

1 个答案:

答案 0 :(得分:4)

您正在尝试将浮点数-0.5读入整数,但这会失败。一旦流失败,它将不会读取任何其他内容,直到错误被清除。