Имя пользователя:
Пароль:
 

Название темы: запись структур в VС++
Показать сообщение отдельно

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


bilytur, да, вообще так конечно можно сделать, но это не есть хорошо, потому что, во-первых, считывать нужно несколько блоков, во-вторых, размер блоков заранее неизвестен, в-третьих, не факт, что считывать придется из одного файла - в смысле количество файлов может быть и больше одного, именно поэтому я делаю потоковую обработку, т.е. чтение-запись.
Так, а теперь про код - он вроде правильный и работать должен правильно, но почему-то не работает, я никак не пойму почему. Прикол в том, что если переписать то же самое в виде:
f = fopen(f_name, "rb+";
unsigned char cur;
for (int i=0; i<350; i++) {
fseek(f, i, SEEK_SET);
cur = fgetc(f);
fseek(f, i, SEEK_SET);
cur &= 0xF0;
fputc(cur, f);
}
fclose(f);
все работать будет замечательно. Вот и в чем проблема того кода?

Добавлено:

hasherfrog, что он делает я знаю - сам писал... но на всякий случай уточню - считывает символ (указатель смещается на следующий), затем возвращаем указатель и записываем на его место измененный символ, т.е., грубо говоря, просто заменяем символ.

Отправлено: 16:37, 27-02-2004 | #10

Название темы: запись структур в VС++