0 / 0 / 2
Регистрация: 15.09.2012
Сообщений: 78
1

Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот

09.04.2013, 16:11. Показов 3886. Ответов 3
Метки нет (Все метки)

Язык си.
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот.

Вообщем проблема в том, что при замене он заменяет сначало все символы на 0, а только потом уже получившиеся нули и которые были ранее заменяет на 1. Подскажите, как сделать, чтобы заменял как в условии.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2013, 16:11
Ответы с готовыми решениями:

Переписать в другой файл все строки заданного с заменой символа 1 на символ 0 и наоборот
Задание: Имеется текстовый файл. Переписать в другой файл все его строки с заменой символа 1 на...

Переписать в другой файл все его строки с заменой в них символа «0» на символ «1» и наоборот
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа «0» на...

Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот.
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на...

Переписать в файл g все компоненты файла f с заменой в них символа 0 на символ 1 и наоборот
помогите пожалуйста решить задачи в делфи очень надо 1.Дан текстовый файл f. Переписать в файл g...

3
6 / 6 / 6
Регистрация: 19.03.2013
Сообщений: 50
09.04.2013, 16:24 2
Рассмотрим твой блок кода по внимательнее:

C
1
2
3
4
5
6
for(i=0;!feof(f);i++){ 
fscanf(f,"%c",&c); 
if(c=='1') c='0'; 
if(c=='0') c='1'; 
fprintf(f2,"%c",c); 
}

Допустим у нас последовательность 101, счетали первый символ в переменную c он '1' проверили - единица? да! поменяли на '0', опять его же проверяем но уже на '0', проверка проходит так как в предыдущей проверке мы его поменяли на '0', ну и так дальше по кругу. Отсюда и ошибки

Как вариант:

C
1
2
3
4
5
6
7
8
9
10
11
for(i=0;!feof(f);i++){ 
fscanf(f,"%c",&c); 
if(c=='1') 
 {
  c='0';
  continue; 
 }
if(c=='0')
  c='1'; 
fprintf(f2,"%c",c); 
}
1
0 / 0 / 2
Регистрация: 15.09.2012
Сообщений: 78
09.04.2013, 16:38  [ТС] 3
В таком случаи он заменяет 0 на 1, а вместо изначальной единицы становится пустое место.(
0
6 / 6 / 6
Регистрация: 19.03.2013
Сообщений: 50
09.04.2013, 16:39 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Немного поправил вот так должно быть всё пучком

C
1
2
3
4
5
6
7
8
9
10
11
12
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); 
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2013, 16:39
Помогаю со студенческими работами здесь

Переписать в файл g все компоненты файла f с заменой в них символа 0 на символ 1 и наоборот
Помогите решить! Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в них...

Переписать в файл g все компоненты файла f с заменой в них символа 0 на символ 1 и наоборот
День добрый, сидел мучил голову... так толком и не пришёл ни к чему... сам С# недавно изучать...

Переписать в файл g все компоненты файла f с заменой в них символа 0 на символ 1 и наоборот
Здание: Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в них символа...

Переписать в файл g все компоненты файла f с заменой в них символа 0 на символ 1 и наоборот
9. Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в них символа 0 на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru