Переписать в другой файл все его строки с заменой в них символа 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, что означает успешное выполнение.