В начало и конец каждой строки текстового файла добавить разделитель «|» - C (СИ)

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

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

Задание: Даны три файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти числа, расположенные в три столбца шириной по 20 символов (в каждом столбце содержатся числа из соответствующего исходного файла). В начало и конец каждой строки текстового файла добавить разделитель «|» (код 124). Числа выравниваются по левому краю столбца. Вот то что я написала...у меня происходит зацикливание в while.Помогите пожалуйста разобраться.
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(int argc, char* argv[])
{
 FILE *a,*b,*c,*f;
 char sym1,sym2,sym3;
 char razd='|';
 int i;
 a=fopen("first.txt","w");
 b=fopen("second.txt","w");
 c=fopen("third.txt","w");
 f=fopen("result.txt","w");
 if (a==0 || b==0 || c==0 || f==0)
 { perror("Cannot open files!!!");
   exit(0);
 }
 while (!feof(a) && !feof(b) && !feof(c))
 { fprintf(f,"%c",razd);
   for(i=0;i<20;i++)
   {fscanf(a,"%c",&sym1);
    fprintf(f,"%c",&sym1);
   }
   fprintf(f,"|");
   for(i=0;i<20;i++)
   {fscanf(b,"%c",&sym2);
    fprintf(f,"%c",sym2);
   }
   fprintf(f,"|");
   for(i=0;i<20;i++)
   {fscanf(c,"%c",&sym3);
    fprintf(f,"%c",sym3);
   }
   fprintf(f,"|");
   fprintf(f,"\n");
 }
 close(a);
 close(b);
 close(c);
 close(f);
 printf("Finish!!!");
 getch();
  return 0;
}
//---------------------------------------------------------------------------

Решение задачи: «В начало и конец каждой строки текстового файла добавить разделитель «|»»

textual
Листинг программы
bool b = false;
while (!b)
{
b = feof(a) || feof(b) || feof(c);
...
}

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

  1. Переменная b инициализируется значением false.
  2. В цикле while происходит проверка условия, что значение переменной b равно false.
  3. Внутри цикла происходят операции чтения из файлов a, b и c с помощью функции feof.
  4. Результат операций чтения из файлов приводится к логическому значению с помощью булева оператора ||.
  5. Значение переменной b обновляется в зависимости от результата операции чтения из файлов.
  6. Цикл while продолжается до тех пор, пока значение переменной b не станет равно true.
  7. В теле цикла возможно выполнение дополнительного кода, который не указан в вопросе.

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


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

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

13   голосов , оценка 4.385 из 5
Похожие ответы