-6

最初のファイル(a.txt)のコンテンツを2番目のファイル(b.txt)の最後に追加しようとしています...しかし、これを行う方法がわかりません。私は次のコードを持っています。

        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);

Results [1]は、ファイルa.txtの名前です。Results [2]は、ファイルb.txtの名前です。

ありがとう。

4

1 に答える 1

0

results[2]追加モードで開く:

FILE *fp2;

fp2 = fopen(results[2], "a");  // a is for append

次に、最初のファイルをループして2番目のファイルにダンプできます。次のようになります。

char line[100] = {0};
while (fgets(line,sizeof(line),fp) != NULL)
  fputs(line, fp2);

編集:これは、「test.txt」の内容を取得して「test2.txt」に追加する完全なコンパイルプログラムです。

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;
}
于 2012-12-13T19:33:24.977 に答える