在我尝试在 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,如果它有用......
答案 0 :(得分:6)
您的代码中存在拼写错误。在第27行,您使用'<\n'
定义一个多字节char常量。删除&lt;标志,它应该工作正常。