Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 21:45   #1
craabpinguin
 
Регистрация: 23.12.2012
Сообщений: 5
Печаль бесконечный цикл в программе

Написать программу, осуществляющую замену в файле всех символов с кодами от C1 по C2 на пробелы.
Помогите пожалуйста!Вроде всё должно работать,но уходит почему-то в бесконечный цикл,заполняя весь файл пробелами в различных вариациях. Среда- freebsd
Код C
Код:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h> 
int main(void)
{
int fp,i
char c;
i=0
fp=open("1.txt",O_CREAT|O_RDWR);
while (c!=EOF)
{
read(fp,&c,1);
if ((c>1)&&(c<110))
{
if (c>32);
{
c='_';
}
}
write(fp,&c,1);
lseek (fp,i,SEEK_SET):
i++
}
close(fp);
return 0;
}
P.S. вроде все служебные символы не удаляются,думаю дело в смещении,но хз

Последний раз редактировалось Stilet; 23.12.2012 в 22:24.
craabpinguin вне форума Ответить с цитированием
Старый 23.12.2012, 22:06   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main(void)
{
    int f1,f2;
    char c;
    f1=open("1.txt",O_CREAT|O_RDWR);
    f2=open("1.txt",O_CREAT|O_RDWR);
    while (read(f1,&c,1))
    {
        if ((c>1)&&(c<110))
        {
            if (c>32);
            {
                c='_';
            }
        }
        write(f2,&c,1);
        }
    close(f1);
    close(f2);
    return 0;
}
или
Код:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main(void)
{
    int f1;
    char c;
    f1=open("1.txt",O_CREAT|O_RDWR);
    while (read(f1,&c,1))
    {
        if ((c>1)&&(c<110))
        {
            if (c>32);
            {
                c='_';
            }
        }
        lseek(f1,-1,SEEK_CUR);
        write(f1,&c,1);
        }
    close(f1);
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.12.2012, 22:54   #3
craabpinguin
 
Регистрация: 23.12.2012
Сообщений: 5
По умолчанию

спасибо огромное!
craabpinguin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечный цикл. Тошка Помощь студентам 6 12.03.2011 17:50
Бесконечный цикл (Pascal) _fynjy_ Помощь студентам 4 13.12.2010 21:36
Бесконечный цикл. Kingdom_Reborn Помощь студентам 4 11.11.2010 00:18
Бесконечный цикл(visual c++) JOFRIF Visual C++ 10 26.08.2008 22:43
Бесконечный цикл Эдуард Общие вопросы C/C++ 4 03.04.2008 17:28