从文件中读取整数会返回错误的输出(ifstream)

时间:2014-07-14 20:07:54

标签: c++ fstream ifstream

在我尝试在 C ++ 中制作自动数独求解器时,我需要的第一步是从文件中读取9x9网格。目前我只是尝试简单地读取数据,并将其显示为输出,但输出不正确。我的代码如下:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
    // Initialize string for the lines to be read in
    string line;

    // Create the object to read the file "data.txt"
    ifstream sudokuData("data.txt");

    // Check if file opened properly
    if (!sudokuData.good()) {
    cout << "Couldn't open the file.\n";
    }

    // Read only if file exists
    if ( sudokuData.is_open() ) {

        cout << "Starting to read from file... \n";

        // Read as long as there are lines in the file
        while ( getline(sudokuData,line) ) {
            cout << line << '<\n';
        }

        // Close file once done reading
        sudokuData.close();

    } else {
        // If file cannot be read, inform the user
        cout << "Unable to open file";
    }
        return 0;
}

我能找到的是正确的。数据文件包含每行中1到9的数字,用空格分隔。示例行将是:

1 2 3 4 5 6 7 8 9

但是当我运行代码时,我得到以下输出:

Starting to read from file 
153709 1 2 3 4 5 6 7 815370
RUN SUCCESSFUL (total time: 38ms)

我到底做错了什么?

我正在使用NetBeans 8.0作为IDE,如果它有用......

1 个答案:

答案 0 :(得分:6)

您的代码中存在拼写错误。在第27行,您使用'<\n'定义一个多字节char常量。删除&lt;标志,它应该工作正常。