Я пытался хранить матричный ввод в текстовом файле в массиве, но он показывает мне своеобразный вывод. Это код:Прочитайте матрицу из текстового файла и сохраните ее в массиве 2D
#include <stdio.h>
int main()
{
int c, i, j, row, col, nl, cr;
row = col = nl = cr = 0;
FILE *fp = fopen("g.txt", "r");
// Figure out how many rows and columns the text file has
while ((c = getc(fp)) != EOF)
{
if (c == '\n')
nl++;
if (c == '\r')
cr++;
col++;
if (c == '\n')
row++;
putchar(c);
}
col = (col - (nl + cr));
col = (int) (col/row);
// printf("\nnumber of rows is %d\n", row);
// read letters into array
char array[row][col];
if (fp)
{
for (;;)
{
c = getc(fp);
if (c == EOF)
{
break;
}
if (c != '\n' && c != '\r')
{
array[i][j] = c;
if (++j >= col)
{
j = 0;
if (++i >= row)
{
break;
}
}
}
}
fclose(fp);
}
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
putchar(array[i][j]);
}
putchar('\n');
}
return 0;
}
Пример файла данных:
255 50 9 50 1 50 50 1
50 255 50 50 50 50 50 50
50 50 255 50 50 50 50 50
8 50 50 255 50 50 50 50
50 50 50 50 255 50 50 50
50 50 50 50 50 255 50 50
1 50 50 50 50 50 255 50
2 50 50 50 50 50 50 255
Моя программа показывает мне этот выход:
255 50 9 50 1 50 50 1
50 255 50 50 50 50 50 50
50 50 255 50 50 50 50 50
8 50 50 255 50 50 50 50
50 50 50 50 255 50 50 50
50 50 50 50 50 255 50 50
1 50 50 50 50 50 255 50
2 50 50 50 50 50 50 255 $■(1gÍuáþ09■ ı¤ıu"ÒávD ê$[
► ð²( ♥ l ► ■
ê$[ ♥ l ²(O»ƒv[ 4■(Qõá
v♥ #õáv┬²║Oÿ|®v ñ|®ve┬ív
■( x■(ÿ|®v Ó²⌂ @■( áƒv╚♀[ L
■(w¯ƒv‼ ê■(I┴ávÿ|®v↓┴áv~²║O
Ó²⌂ \■(■ ─ (e┬ívÍ┬29►☺
для входного файла, показанного, но проблема для вывод массива я не понимаю, почему он показывает мне эти персонажи.
Я уверен, что эта строка: 'char array [row] [col];' не может компилироваться, массив, объявленный в стеке, должен иметь фиксированный размер. – Michael
Возможный дубликат [Чтение из текстового файла и сохранение в 2D-массиве] (http://stackoverflow.com/questions/18942719/reading-from-a-text-file-and-storing-in-a-2d- массив) –
[это] (http://imgur.com/gwioITt). Вы работаете над тем же заданием? Или это учетная запись? –