В начало и конец каждой строки текстового файла добавить разделитель «|» - 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. - В теле цикла возможно выполнение дополнительного кода, который не указан в вопросе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д