Вывести результат компиляции в *.txt файл - C (СИ)
Формулировка задачи:
у меня есть така матрица, надо вывести результат компиляции в *.txt файл
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int ** matr;
int n=9, i, j, m;
int main()
{
matr = (int **)malloc(n * sizeof(int *));
for (i = 0; i < n; i++)
{
matr[i] = (int *)malloc(n * sizeof(int));
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
matr[i][j] = rand() % 100;
}
}
for (i = 0; i < n; i++)
{
for (j = n > 1; j < n; j++)
{
matr[i][n - j - 1] = matr[i][j];
}
}
puts("\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d", matr[i][j]);
}
puts("\n");
}
return 0;
}Решение задачи: «Вывести результат компиляции в *.txt файл»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int ** matr;
int n=9, i, j, m;
FILE *file;
char *fname = "some_file.txt";
int main()
{
matr = (int **)malloc(n * sizeof(int *));
for (i = 0; i < n; i++)
matr[i] = (int *)malloc(n * sizeof(int));
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
matr[i][j] = rand() % 100;
for (i = 0; i < n; i++)
for (j = n > 1; j < n; j++)
matr[i][n - j - 1] = matr[i][j];
file = fopen(fname,"w");
if(file == 0)
{
printf("can\'t open or create file '%s'",fname);
return 0;
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d", matr[i][j]);
fprintf(file, "%3d", matr[i][j]);
}
puts("\n");
fprintf(file, "\n\r");
}
fclose(file);
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , . - Объявляются необходимые переменные:
- matr - двумерный массив (матрица) типа int;
- n - размерность матрицы;
- i, j, m - индексы для обращения к элементам матрицы;
- file - указатель на файл;
- fname - строка, содержащая имя файла для записи.
- Выделяется память под матрицу и её элементы.
- Заполняется матрица случайными числами от 0 до 99.
- Производится перестановка элементов матрицы в соответствии с её размерностью.
- Открывается файл для записи.
- Если файл не удалось открыть, выводится сообщение об ошибке и программа завершается.
- В цикле перебираются все элементы матрицы и выводятся на экран и в файл.
- После каждой строки матрицы выводится символ новой строки.
- Файл закрывается.
- Программа ожидает нажатия клавиши для завершения работы.
- Возвращается 0, сигнализируя о успешном завершении работы программы.