Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск и замена символа, !help 
:(
    Опции темы
Strob
Дата 27.5.2005, 05:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 23.12.2003
Где: Ukraine

Репутация: нет
Всего: нет



Помогите пожалуйста как можно реализовать на Visual C++ 6.0 мне нужно в *.txt файле отыскать сымвол (" | ") во всех строках и заменить его на (" * ")

PM MAIL   Вверх
jorkug
Дата 27.5.2005, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 21.3.2005

Репутация: нет
Всего: 1



Примерно так:
Код

fpos_t tempPos = 0;
FILE* f = fopen("name.txt", "w");
for(char c = 'n';!feof(f);fscanf(f, "%c", &c), tempPos++)
{
   if(c == '|')
   {
      tempPos--;
      setpos(f, &tempPos);
      fprintf(f, "%c", '*');
   }
}
fclose(f);


Это сообщение отредактировал(а) jorkug - 27.5.2005, 05:53
PM MAIL   Вверх
gepard
Дата 27.5.2005, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



А ещё можно считывать по одной строке и разбирать каждую из них.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Mayk
Дата 27.5.2005, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



А я бы делал примерно так, ибо гораздо быстрее:
(разумеется, добавить обработку ошибок не помешает)

Код

     //ранее FILE* f = fopen("input.txt","r+"); 
    const int BufSize = 1024;  //размер буфера искл. \0
    char buf[BufSize+1]; //буфер
    int bytesRead=0; //кол-во прочитанных байт
    char*p; //указатель внутри буфера для поиска

    while((bytesRead=fread(buf, 1, BufSize,f)) > 0) {
        buf[bytesRead]=0; //добиваем нулем
        //поиск и замена. 
        p=buf;
        while(p=strchr(p,'|'))
            *p++='*';
        //запись
        fseek(f, -bytesRead, SEEK_CUR);
        fwrite(buf,bytesRead,1,f);
    }



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.