【发布时间】:2023-03-02 21:56:02
【问题描述】:
我正在尝试将文件 myfile.txt 的内容附加到 c 中的第二个文件 myfile2.txt 的末尾。我可以复制内容,但我找不到追加的方法。这是我的代码:
FILE *pFile;
FILE *pFile2;
char buffer[256];
pFile=fopen("myfile.txt", "r");
pFile2=fopen("myfile2.txt", r+);
if(pFile==NULL) {
perror("Error opening file.");
}
else {
while(!feof(pFile)) {
if(fgets(buffer, 100, pFile) != NULL) {
fseek(pFile2, -100, SEEK_END);
fprintf(pFile2, buffer);
}
}
fclose(pFile);
fclose(pFile2);
我认为我没有正确使用 fseek,但我想做的是调用 fseek 将指针放在文件末尾,然后写入该指针的位置,而不是文件的开头。这是正确的方法吗?
【问题讨论】:
-
(除了下面的答案)您的
fseek想法应该可行,但是由于您使用SEEK_END,因此“指针”已经在最后-并且 then 你“返回”100 个字符。使用0作为偏移量,它应该可以工作。 (次要:你检查你的阅读文件是否可以打开,但不是你的写作文件。检查两者。) -
第 12 行的错字,大括号没有闭合