Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот - C (СИ)
Формулировка задачи:
Язык си.
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот.
Вообщем проблема в том, что при замене он заменяет сначало все символы на 0, а только потом уже получившиеся нули и которые были ранее заменяет на 1. Подскажите, как сделать, чтобы заменял как в условии.
#include <stdio.h> int main() { int i; char c; FILE *f,*f2; f=fopen("s1.txt","r"); f2=fopen("s2.txt","w"); for(i=0;!feof(f);i++){ fscanf(f,"%c",&c); if(c=='1') c='0'; if(c=='0') c='1'; fprintf(f2,"%c",c); } fclose(f); fclose(f2); return 0;}
Решение задачи: «Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот»
textual
Листинг программы
for(i=0;!feof(f);i++){ fscanf(f,"%c",&c); if(c=='1') { c='0'; fprintf(f2,"%c",c); continue; } if(c=='0') c='1'; fprintf(f2,"%c",c); }
Объяснение кода листинга программы
- Программа открывает два файла для чтения и записи, соответственно
f
иf2
. - Используется цикл
for
для чтения каждой строки из первого файла до тех пор, пока не будет достигнут конец файла (это проверяется с помощью функцииfeof
). - Внутри цикла считывается каждый символ из текущей строки с помощью функции
fscanf
и сохраняется в переменной типаchar
под названиемc
. - Если
c
равен '1', то он заменяется на '0' и записывается в второй файл с помощью функцииfprintf
. - Если
c
равен '0', то он заменяется на '1' и также записывается в второй файл с помощью функцииfprintf
. - После записи каждого символа в второй файл, программа продолжает чтение следующей строки из первого файла.
- По завершении цикла, программа закрывает первый файл с помощью функции
fclose
. - Программа закрывает второй файл с помощью функции
fclose
. - Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д