Считать 3 числа из файла, и записать в результирующий - C (СИ)
Формулировка задачи:
Имеются некоторые проблемы с чтением с/записью в файл.
Допустим, есть программа, считающая НСД 3 чисел. Надо считать 3 числа из файла, и записать в файл
НСД. Файлов два варианта - бинарный и текстовый.
Вот код без файлового ввода-вывода.
Как я понял, запись примерно так смотрится например:
Но не работает.
#include <stdio.h> int nsd(int r,int w) { do { if (r>w) r=r%w; else w=w%r; } while (r!=0&&w!=0); return r+w; } int main() { int a,b,c; printf ("Input a,b,c: \n"); scanf ("%d%d%d", &a,&b,&c); printf("%d ",nsd(c,nsd(a,b))); return 0; }
FILE *out; out=fopen("D://file.txt", "w"); if (out!=0) fprintf (out, "%d%d%d", a,b,c);
Вот это должно бы работать, но ....
FILE *ff; FILE *out; int a,b,c; out=fopen("D://fileout.txt","r"); if (out!=NULL) fscanf(out,"%d%d%d",&a,&b,&c); fclose(out); nsd(c,nsd(a,b)); ff=fopen("D://filein.txt","w"); if (ff!=NULL) fprintf(ff, "%d ", nsd(c,nsd(a,b))); fclose(ff);
Решение задачи: «Считать 3 числа из файла, и записать в результирующий»
textual
Листинг программы
#include <stdio.h> int nsd(int r, int w) { do { if (r > w) r = r % w; else w = w % r; } while (r != 0 && w != 0); return r + w; } int main() { int a=12, b=60, c=50; //printf("Input a,b,c: \n"); //scanf("%d%d%d", &a, &b, &c); //printf("%d ", nsd(c, nsd(a, b))); FILE *ff; FILE *out; out = fopen("fileout.txt", "w"); if (out!=NULL) fprintf(out, "%d %d %d", a, b, c); fclose(out); out = fopen("fileout.txt", "r"); if (out != NULL) fscanf(out, "%d%d%d", &a, &b, &c); fclose(out); nsd(c, nsd(a, b)); ff = fopen("filein.txt", "w"); if (ff != NULL) fprintf(ff, "%d ", nsd(c, nsd(a, b))); fclose(ff); return 0; }
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Определяем функцию nsd, которая вычисляет наибольший общий делитель двух чисел
- В функции main создаем три переменные типа int: a=12, b=60, c=50
- Открываем файл для записи (fileout.txt) и записываем в него значения переменных a, b, c
- Открываем файл для чтения (fileout.txt) и считываем значения переменных a, b, c
- Вычисляем значение функции nsd с использованием переменных a, b, c
- Открываем файл для записи (filein.txt) и записываем в него значение функции nsd
- Закрываем все открытые файлы
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д