Найти В Строке Символы С С1 По С2 В Ascii Коде

Тема в разделе "C/C++/C#", создана пользователем craabpinguin, 23 дек 2012.

  1. craabpinguin

    craabpinguin Гость

    Написать программу, осуществляющую замену в файле всех символов с кодами от 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. вроде все служебные символы не удаляются,думаю дело в смещении,но хз :(
     
  2. craabpinguin

    craabpinguin Гость

    тема закрыта,мне уже помогли,могу выложить решение если интересно
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ты считываешь символы с начала файла, а пишешь в конец, поэтому файл не заканчивается :)
    можно считать весь файл в память, обработать и записать назад.
    или перемещать каретку (позицию) записи.

    Добавлено:
    а не заметил, но решение выкладывай - это не будет лишним для развития форума :)
     
Загрузка...

Поделиться этой страницей