好的,这似乎是一个简单的问题。但我似乎找不到答案。我的代码如下:
void writeFile(int grid[9][9]) {
ofstream fout ("myGame2.txt");
if (fout.is_open()) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
fout << grid[i][j] << ' ';
}
}
fout.close();
}
}
这将产生一个充满乱码的文件:
‷′″‰‰‰‱‵‹‶‰‰″‰′‰‰‸‸‰‰‰‱‰‰‰′‰‷‰‶‵‴‰′‰‰‰‴′‰‷″‰‰‰‵‰‹″‱‰‴‰‵‰‰‰‷‰‰‰″‴‰‰‱‰″‰‰‶‹″′‰‰‰‷‱‹'
但是,如果我用endl替换空格字符,它的输出就很好。
fout << grid[i][j] << endl;
所以我的问题变成了,如何将数组输出到文件,并用空格而不是endl分隔整数。
另外,如果有某个位置可以对此进行详细说明,请随时进行链接。感谢所有帮助。
最佳答案
根据您使用的IDE,不带endl结束文件可能会导致问题。
解:
void writeFile(int grid[9][9]) {
ofstream fout ("myGame2.txt");
if (fout.is_open()) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
fout << grid[i][j] << ' ';
}
}
fout << endl;
fout.close();
}
}
或者,如果您希望它像网格一样打印出来,而不是一行文本:
void writeFile(int grid[9][9]) {
ofstream fout ("myGame2.txt");
if (fout.is_open()) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
fout << grid[i][j] << ' ';
}
fout << endl;
}
fout.close();
}
}
关于c++ - 无法使用ofstream来写空间,但是endl可以正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43266754/