Попытка считывания данных из текста и копирования этих данных в массив
текстовый файл представляет собой таблицу n на n, которую я уже знаю "n", и это максимум 50. так что стол будет выглядеть примерно так:
##*
#*#
*##
я создал hidden_board[50][50] , так что нужно скопировать данные из текстового файла в массив и для '#' поставить число 10, а для '*' поставить число 11.
я много чего усложнял но это то что у меня есть до сих пор:
это так грязно неэффективно и не работает и когда я печатаю массив он показывает:
10 11 0
10 11 0
0 11 0
я не знаю, откуда взялись нули. может ли кто - нибудь сказать мне, как правильно это сделать?
Что я уже пробовал:
char my_board_dummy[n*n]; int my_board_dummy1[n*n]; int i=0; FILE* file; if ((file=fopen("minesweeper.txt" , "r"))) { char c; while ((c=fgetc(file))!=EOF) my_board_dummy[i++]=c; for (int i=0; i<n*n; ++i){ if (my_board_dummy[i]=='#') my_board_dummy1[i]=10; else if (my_board_dummy[i]=='*') my_board_dummy1[i]=11; } for (int i=0; i<n*n; ++i){ hidden_board[i/n][i%n-1]=my_board_dummy1[i]; }
Richard MacCutchan
Почему вы используете фиктивный массив в первую очередь? Когда вы читаете каждую строку текста, установите соответствующие записи в массиве на значения 10 или 11 в зависимости от того, какой символ вы читаете. Вы также должны убедиться, что Ваш массив имеет точно такой же размер, как и элементы в файле данных.