Переписать числа файла, идущие подряд, в другой файл, причем записаны они должны быть в столбец - C (СИ)

Узнай цену своей работы

Формулировка задачи:

У меня имеется текстовый файл с числами, записанными подряд. Нужно переписать эти числа в другой файл, причем записаны они должны быть в столбец. В строке определенное количество символов. задается отдельно. вот что написала:
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include<ctype.h>
  5. #include<string.h>
  6. #include<math.h>
  7. void main( )
  8. {
  9. FILE *cht,*mas;
  10. int ch, n, i,e;
  11. clrscr ();
  12. if ((cht = fopen("G:\\in.txt","r")) == NULL)
  13. {
  14. fprintf(stdout, "Error opening file in.txt");
  15. exit(1);
  16. }
  17. if ((mas = fopen("G:\\out.txt","w")) == NULL)
  18. {
  19. fprintf(stdout, "Error opening file out.txt");
  20. exit(1);
  21. }
  22. printf("Dlina stroki: ");
  23. scanf("%d", &n);
  24. e = '\n';
  25. while (feof(cht)==0)
  26. {
  27. for (i=0;i<=n;i++)
  28. {
  29. ch = fgets (cht);
  30. fputc (ch, mas);
  31. fprintf (mas, "%d\n",e);
  32. }
  33. }
  34. fclose(cht);
  35. fclose(mas);
  36. getch();
  37. }
в независимости от размера задваемой строки он выдает одно и то же, столбец цифр вроде этого: 132 132 132 032 032 132 032 132 032 и т п хотя в исходном одни 0 и 1 я в этом всем чайник. Помогите пожалуйста переделать.

Решение задачи: «Переписать числа файла, идущие подряд, в другой файл, причем записаны они должны быть в столбец»

textual
Листинг программы
  1.   FILE *cht, *mas;
  2.   int ch, n, i, e, flag = 1;
  3.  
  4.  
  5.   if ((cht = fopen("in.txt", "r")) == NULL)
  6.   {
  7.  
  8.     fprintf(stdout, "Error opening file in.txt");
  9.     exit(1);
  10.   }
  11.  
  12.   if ((mas = fopen("out.txt", "w")) == NULL)
  13.   {
  14.     fprintf(stdout, "Error opening file out.txt");
  15.     exit(1);
  16.   }
  17.  
  18.   printf("Dlina stroki: ");
  19.   scanf("%d", &n);
  20.  
  21.   e = '\n';
  22.  
  23.   while (1)
  24.   {
  25.     for (i = 0; i < n; i++)
  26.     {
  27.       ch = fgetc(cht);
  28.       if(feof(cht)){
  29.         flag = 0;
  30.         break;}
  31.       fputc(ch, mas);
  32.     }
  33.     if(!flag){
  34.       break;}
  35.     fputc(e, mas);
  36.   }
  37.  
  38.   fclose(cht);
  39.   fclose(mas);
  40.   system("pause");

Объяснение кода листинга программы

Выполнение кода:

  1. Открывается файл in.txt для чтения и файл out.txt для записи.
  2. Запрашивается длина строки, которая будет записана в файл out.txt.
  3. В цикле while считываются символы из файла in.txt и записываются в файл out.txt.
  4. Если достигается конец файла in.txt, то записывается символ новой строки в файл out.txt.
  5. После завершения чтения файла in.txt, файлы закрываются.
  6. Выводится сообщение об успешном выполнении программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы