Как правильно записывать и считывать двумерные массивы при работе с файлами - C (СИ)
Формулировка задачи:
Как правильно записывать и считывать двумерные массивы при работе с файлами? Поискал в интернете, ничего толкового нет.
FILE *t;
t=fopen("text2.dat","wb");
size_t res1;
res1=fwrite(&mas[n][m],sizeof(int),n,t);
fclose(t);
t=fopen("text2.dat","rb");
int buff[n][m];
res1=fread(&buff[n][m],sizeof(int),n,t);
printf("Вывод массива:\n");
for (i=0;i<n;i++) {
for (j=0;j<m;j++) {
printf("buff[%d][%d]=%d\t",i,j,mas[i][j]);
}
printf("\n");
}
fclose(t);Решение задачи: «Как правильно записывать и считывать двумерные массивы при работе с файлами»
textual
Листинг программы
FILE *t;
t=fopen("text2.dat","wb");
size_t res1;
res1=fwrite(mas,sizeof(int),n*m,t);
fclose(t);
t=fopen("text2.dat","rb");
int buff[n][m];
res1=fread(buff,sizeof(int),n*m,t);
printf("ГЊГ*Г±Г±ГЁГў ГЁГ§ ГґГ*éëГ*\n");
for (i=0;i<n;i++) {
for (j=0;j<m;j++) {
printf("buff[%d][%d]=%d\t",i,j,mas[i][j]);
}
printf("\n");
}
fclose(t);
Объяснение кода листинга программы
- Создается файл
text2.datдля записи и чтения данных. - Открывается файл
text2.datв режиме записиwb. - Записывается двумерный массив
masразмером n*m в файлtext2.dat. - Закрывается файл
text2.dat. - Открывается файл
text2.datв режиме чтенияrb. - Создается двумерный массив
buffразмером n*m для чтения данных из файла. - Считывается двумерный массив
buffразмером n*m из файлаtext2.dat. - Выводится сообщение
ГЊГ*Г±Г±ГЁГў ГЁГ§ ГґГ*éëГ*\n(это просто строка для примера, ее можно заменить на любую другую). - Выводится содержимое массива
buffпострочно. - Закрывается файл
text2.dat.