在C中将文件1的内容添加到文件2
我正在尝试将第一个文件(a.txt)的内容添加到第二个文件(b.txt)的末尾。。。但我不知道如何做到这一点。我有以下代码在C中将文件1的内容添加到文件2,c,C,我正在尝试将第一个文件(a.txt)的内容添加到第二个文件(b.txt)的末尾。。。但我不知道如何做到这一点。我有以下代码 int i = 0; char delims[] = " \n"; char *result = NULL; char * results[10]; result = strtok( cmdStr, delims ); while( result != NULL ) {
int i = 0;
char delims[] = " \n";
char *result = NULL;
char * results[10];
result = strtok( cmdStr, delims );
while( result != NULL ) {
results[i] = result;
i++;
result = strtok(NULL, " \n");
}
// results[1] shows a.txt
// results[2] shows b.txt
FILE *fp;
char ch;
if((fp = fopen(results[1],"r")) == NULL) {
printf("Cannot open file.\n");
} else {
...
// add the content of results[1] in the end of results[2]
...
}
fclose(fp);
结果[1]是文件a.txt的名称。
结果[2]是文件b.txt的名称
谢谢。在追加模式下打开
结果[2]
:
FILE *fp2;
fp2 = fopen(results[2], "a"); // a is for append
然后,您可以循环遍历第一个文件并转储到第二个文件。。比如:
char line[100] = {0};
while (fgets(line,sizeof(line),fp) != NULL)
fputs(line, fp2);
编辑:这里有一个完整的编译程序,它接受“test.txt”的内容并将其附加到“test2.txt”中:
你知道怎么读文件吗?一般情况下如何写入?大致的大纲是:打开两个文件(b.txt用于写入,a.txt用于读取)。从a.txt读取;写入b.txt;重复,直到完成。您对哪些步骤有问题?我知道它使用fputs(文件名、内容);我已经在最后的else声明中插入了。。。但是它没有做任何事情。@user1893187-然后是其他错误(请参阅编辑以获得代码的工作版本)。您是否检查了您的
结果[1]
和结果[2]
是否如您所期望的那样是“a.txt”和“b.txt”?(您确定它不是results[0]
和results[1]
?)您是否检查了为追加而打开的文件是否已成功打开?你检查过你的文件里有什么东西要读吗?你试过调试器吗?谢谢。很明显,这是因为我没有这个机会。在我插入后,它工作得很好。非常感谢:)
int main(int argc, char** argv) {
FILE *fp;
FILE *fp2;
char line[100] = {0};
char * results[2] = {"test.txt", "test2.txt"};
fp = fopen(results[0], "r");
fp2 = fopen(results[1], "a"); // a is for append
while (fgets(line,sizeof(line),fp) != NULL)
fputs(line, fp2);
fclose(fp);
fclose(fp2);
return 0;
}