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

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

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

У меня имеется текстовый файл с числами, записанными подряд. Нужно переписать эти числа в другой файл, причем записаны они должны быть в столбец. В строке определенное количество символов. задается отдельно. вот что написала:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
 
void main( )
{
    FILE *cht,*mas;  
    int ch, n, i,e;
    
    clrscr ();
 
    if ((cht = fopen("G:\\in.txt","r")) == NULL)
    {
 
        fprintf(stdout, "Error opening file in.txt");
        exit(1);
    }
 
    if ((mas = fopen("G:\\out.txt","w")) == NULL)
    {
        fprintf(stdout, "Error opening file out.txt");
        exit(1);
    }
 
    printf("Dlina stroki: ");
    scanf("%d", &n); 
 
    e = '\n';
 
    while (feof(cht)==0)
    {
        for (i=0;i<=n;i++)
        {
            ch = fgets (cht);
            fputc (ch, mas);
            fprintf (mas, "%d\n",e);
        }
    }
        
    fclose(cht);
    fclose(mas);
    getch();
}
в независимости от размера задваемой строки он выдает одно и то же, столбец цифр вроде этого: 132 132 132 032 032 132 032 132 032 и т п хотя в исходном одни 0 и 1 я в этом всем чайник. Помогите пожалуйста переделать.

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

textual
Листинг программы
  FILE *cht, *mas;
  int ch, n, i, e, flag = 1;
 
 
  if ((cht = fopen("in.txt", "r")) == NULL)
  {
 
    fprintf(stdout, "Error opening file in.txt");
    exit(1);
  }
 
  if ((mas = fopen("out.txt", "w")) == NULL)
  {
    fprintf(stdout, "Error opening file out.txt");
    exit(1);
  }
 
  printf("Dlina stroki: ");
  scanf("%d", &n);
 
  e = '\n';
 
  while (1)
  {
    for (i = 0; i < n; i++)
    {
      ch = fgetc(cht);
      if(feof(cht)){
        flag = 0;
        break;}
      fputc(ch, mas);
    }
    if(!flag){
      break;}
    fputc(e, mas);
  }
 
  fclose(cht);
  fclose(mas);
  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
Похожие ответы