В начало и конец каждой строки текстового файла добавить разделитель «|» - 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);
...
}
Объяснение кода листинга программы
- Переменная
bинициализируется значением false. - В цикле while происходит проверка условия, что значение переменной
bравно false. - Внутри цикла происходят операции чтения из файлов
a,bиcс помощью функции feof. - Результат операций чтения из файлов приводится к логическому значению с помощью булева оператора
||. - Значение переменной
bобновляется в зависимости от результата операции чтения из файлов. - Цикл while продолжается до тех пор, пока значение переменной
bне станет равно true. - В теле цикла возможно выполнение дополнительного кода, который не указан в вопросе.