0

すべての入力関数が同じバッファーを使用していますか? ある本で読んだのですが、プログラムではすべての入力関数が同じバッファを使っていると書いてありました。私のテストに何か問題があるか知りたいですか?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE    *fp1; 
    FILE    *fp2;
    char    ch;
    char    ch2;
    int d;

    scanf("%d", &d);

    fp1 = fopen("file1.c","r");
    fp2 = fopen("file2.c", "r");

    while((ch = getc(fp1)) != 'r')
        putchar(ch);
    putchar('\n');

    putchar(ch = getc(fp1));
    putchar('\n');

    while((ch2 = getc(fp2)) != 'n')
        putchar(ch2);
    putchar('\n');

    putchar(getc(fp1)); 
    putchar('\n');

    putchar(ch2 = getc(fp2));
    putchar('\n');

    putchar(getchar());
    putchar('\n');

    return 0;

}

file1.c の内容は次のとおりです。最初のもの

file2.c の内容は次のとおりです。

入力したとき:12cd 出力は次のとおりです。

 the fi

 s

 the seco

 t

 d

 c

file1.c file2.c と stdin は 3 つの異なるバッファを使用しているようです。私のテストに何か問題はありますか? どんな助けでも大歓迎です。

4

2 に答える 2

0

まず、テキスト ファイルには他の拡張子を使用することをお勧めします。

明らかに、読み取りまたは書き込みが可能なさまざまなストリームまたはバッファーがあります。あなたが書かれた例は、その良い証拠です。

あなたのプログラムは完全に正常に動作します。

于 2013-08-09T10:36:01.970 に答える