А я бы делал примерно так, ибо гораздо быстрее: (разумеется, добавить обработку ошибок не помешает)
Код | //ранее 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); }
| |