Не может написать пробел, используя ofstream, но 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.close();
}
}
Это производит файл, полный бреда:
‷′″‰‰‰‱‵‹‶‰‰″‰′‰‰‸‸‰‰‰‱‰‰‰′‰‷‰‶‵‴‰′‰‰‰‴′‰‷″‰‰‰‵‰‹″‱‰‴‰‵‰‰‰‷‰‰‰″‴‰‰‱‰″‰‰‶‹″′‰‰‰‷‱‹'
Но если я заменю символ пробела на endl, он выдаст просто отлично.
fout << grid[i][j] << endl;
Поэтому возникает вопрос: как мне вывести мой массив в файл и отделить целые числа пробелом вместо endl?
Кроме того, если есть место, которое объясняет это более подробно, пожалуйста, не стесняйтесь связать это. Вся помощь приветствуется.
1 ответ
Решение
В зависимости от используемой 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();
}
}