У меня есть небольшая проблема. Я пытаюсь прочитать из файла и вывести данные чтения в 2d-массив в C++. Я создал файл .txt и исправлял свой код, но не смог выяснить, в чем проблема.C++ чтение 2d массива из файла
Мой код выглядит следующим образом:
#include <iostream>
#include <fstream>
// this is for file handleing
using namespace std;
int Sudoku[9][9];
int main()
{
ifstream fp("sudoku.txt");
// this is for reading and opening existing file sudoku.txt
for(int row = 0; row < 9; row++){
for(int column = 0; column < 9; column++){
fp >> Sudoku[row][column];
// from fp we read the characters
}
}
for(int row = 0; row < 9; row++){
for(int column = 0; column < 9; column++){
cout << Sudoku[row][column] << " ";
}
cout << endl;
}
fp.close();
return 0;
Мой текстовый файл выглядит следующим образом:
6 4 0 0 0 0 8 0 1
5 0 0 7 0 0 0 2 0
2 7 0 4 9 0 0 0 0
0 3 6 5 1 8 0 9 0
0 0 0 3 0 2 0 0 0
0 5 0 9 6 7 1 4 0
0 0 0 0 7 4 0 8 6
0 8 0 0 0 9 0 0 2
7 0 1 0 0 0 0 5 9
Мой первый вопрос: В предыдущей версии, мой массив был определен внутри основной функции. Я всегда делал вывод мусора вместо содержимого моего файла. Я не понимаю этого: должен ли я определять массив Sudoku
вне моей основной функции, чтобы не получить явно неправильные значения, хранящиеся в его элементах, и почему?
Мой второй вопрос: выход моего текущего кода - это много нулей. Я ожидал найти элементы, считанные из файла. Я тоже этого не понимаю. Что я делаю не так? Я попытался найти ответ, но я пытаюсь написать только эту часть моего решения sudoku, и я застрял.
Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –
Помимо вашего вопроса, вы можете быть заинтересованы в моем коде для чтения, таком как файл: http://www.topbug.net/blog/2013/01/10/load-a-matrix-from-an-ascii-format- file/ – xuhdev
Перед повторным открытием голосования подумайте об этом [комментарий] (http://stackoverflow.com/questions/39457808/c-reading-2d-array-from-file?noredirect1_comment66237324_39457954) от OP «Спасибо. «Я нашел проблему, я немного устал, и я ошибся в текстовом файле». Никакого вреда не было, но, возможно, лучше остаться закрытым. –