Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменение содержимого существующего файла

69K
07 апреля 2011 года
BaNCo
2 / / 07.04.2011
Здравствуйте, нужно изменить содержимое бинарного файла в известных местах. Пытаюсь сделать это следующим образом:
Код:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

FILE *file;
char file_name[] = "test.txt";
char load_string[] = "tst";

file = fopen( file_name, "wb" );
fseek( file, 17, SEEK_SET);
fwrite( load_string, 1, 7, file);
fclose(file);
  return 0;
}

В файле test.txt до выполнения программы было:
qwertyuiopasdfghjklz
(71 77 65 72 74 79 75 69 6F 70 61 73 64 66 67 68 6A 6B 6C 7A)
В итоге, в файл записывается:
.................tst
(00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 73 74)
Каким образом можно изменить содержимое существующего файла в определенных местах без копирования всего его содержимого в буфер и записи обратно после изменения?
277
07 апреля 2011 года
arrjj
1.7K / / 26.01.2011
Код:
#include <stdio.h>
#include <stdlib.h>
#include <cstring>

int main(int argc, char *argv[])
{

FILE *file;
char file_name[] = "test.txt";
char load_string[] = "tst";

file = fopen( file_name, "r+" );
fseek( file, 17, SEEK_SET);
fwrite( load_string, sizeof(char), strlen(load_string), file);
fclose(file);
  return 0;
}

Так работает. Тут написано почему твой код работает не так как ты хочешь.
69K
07 апреля 2011 года
BaNCo
2 / / 07.04.2011
Цитата: arrjj
Тут написано почему твой код работает не так как ты хочешь.


Понял свою ошибку, спасибо за помощь.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог