Вставка значения в файл - PullRequest
       0

Вставка значения в файл

1 голос
/ 24 февраля 2011

В приведенном ниже коде я сохранил значения 1–9 в файле Excel и хочу вставить «а» между «4» и «5». Я установил указатель в положение 7, но он все еще вставляет его в конец. Пожалуйста, помогите мне понять это.

FILE *ExcelFile = fopen("testdata.csv","a");
 if (ExcelFile == NULL)
 return -1;
 fprintf(ExcelFile,"1 2 3 4 5 6 7 8 9");
 fseek (ExcelFile, 7, SEEK_SET );
 //printf("pos is %ld bytes\n", pos);
 fprintf(ExcelFile,"a");
 fclose(ExcelFile);

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

Причина, по которой это не работает, заключается в том, что вы открываете файл для добавления (флаг "a" в вызове fopen).Всякий раз, когда вы пишете в файл, данные, которые вы пишете, всегда будут добавляться.Если ваш файл не существует до открытия, используйте fopen("testdata.csv","w").

1 голос
/ 24 февраля 2011

Вы не можете просто «вставить» значение в файл.Вы должны открыть новый файл, скопировать первую часть первого файла, затем свое значение, затем остальные, а затем заменить старый файл новым или, если файл небольшого размера, прочитать его в память, очиститьфайл, а затем напишите правильный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...