Ввод строки с клавиатуры и запись в файл - C (СИ)
Формулировка задачи:
Давно не практиковалась в написании программ на Си, поэтому прошу помочь с заданием.
Необходимо ввести с клавиатуры набор положительных целых чисел по возрастанию (пользователь сам вводит числа по возрастанию) через пробел и записать в файл. Признак конца ввода данных в файл - набор нуля.
Вот что пока имею:
Оно не работает. Помогите, пожалуйста.
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <ctype.h>
void main()
{
int i,n;
int a[20];
printf ("VVedite stroky chisel v poryadke vozrastaniya: \n");
while (a[i]!='\0')
gets(a);
printf("%s\n",a);
scanf("%d",&a[i]);
chdir("c:");
FILE *f=fopen("file1.txt", "w");
fprintf(f, a);
fclose(f);
}Решение задачи: «Ввод строки с клавиатуры и запись в файл»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
const int N = 10;
int main()
{
int i = 0, a[N];
char str[80];
FILE *f1, *f2, *f3;
f1 = fopen("file1.txt", "w");
f2 = fopen("file2.txt", "w");
f3 = fopen("file3.txt", "w");
printf ("Dlya massiva 1 vvedite stroky chisel v poryadke vozrastaniya: \n");
while (i < N){
scanf("%d", &a[i]);
++i;
}
for(i = 0; i < N; ++i)
fprintf(f1, "%d ", a[i]);
printf ("\nDlya massiva 2 vvedite stroky chisel v poryadke vozrastaniya: \n");
i = 0;
while (i < N){
scanf("%d", &a[i]);
++i;
}
for(i = 0; i < N; ++i)
fprintf(f2, "%d ", a[i]);
fclose(f1);
fclose(f2);
f1 = fopen("file1.txt", "r");
f2 = fopen("file2.txt", "r");
while(NULL != fgets(str, 80, f1)){
fprintf(f3, "%s", str);
}
while(NULL != fgets(str, 80, f2)){
fprintf(f3, "%s", str);
}
fclose(f1);
fclose(f2);
fclose(f3);
return 0;
}