#c #file
Вопрос:
Я новичок в C, и я пытаюсь добавить слово «НИКОС», которое я хочу, чтобы оно было первым словом в моем текстовом файле, но моя проблема в том, что, когда я пишу слово в своем файле, это слово перезаписывается словом «мой», Как можно избежать этой ошибки?
Мой код :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
fp=fopen("file2.txt","w");
if (fp==NULL)
{
printf("File does not exist");
return 8;
}
char c;
char *p[5]={"my","french","bulldog","barks"};
char **p1;
int num1=0;
for(p1=p ; *p1 ; p1 )
{
fputs(*p1,fp);
fseek(fp,1,SEEK_CUR); //afino keno
}
fseek(fp,0,SEEK_SET);
fputs("NIKOS",fp);
fseek(fp,0,SEEK_CUR);
return 0;
}
Комментарии:
1. Вставка произвольной длины текста в существующий файл в любом месте, кроме конца, как правило, не является чем-то, что вы можете сделать.
2. Если вы хотите заменить или вставить текст в текстовый файл, лучше всего переписать весь файл целиком. Распространенный метод состоит в том, чтобы скопировать все содержимое в новый файл, выполнив необходимые изменения, а затем переименовать новый файл как старый.
3. @ Какой-то чувак-программист, я думал передать все слова в массив и снова записать их в свой файл, но я бы подумал, есть ли другой подход
4. ОТ: Что вы собираетесь делать
fseek(fp,1,SEEK_CUR)
?5. Использование буфера в памяти вместо нового файла также работает. Но на самом деле другого способа сделать это нет. Если только вы не заменяете часть файла другой частью точно такой же длины.