0

使用する必要があるため、scanfを使用しています。問題は次のとおりです:(これは問題の単なる例です):

    int main() {
        char ch [10]={0};
        scanf("%s",ch);

        printf("%s",ch);
    }

プログラムを実行して、たとえば次のように入力すると、^Z が EOF の場合、word^Z と入力します。プログラムは所定の位置に留まり、scanf でスタックしますが、word を入力してから ctrl+z を押してから Enter を押しました。しかし、どういうわけかそれはscanfにとどまり、ctr + zなどの問題ではないのと同じように、リダイレクトと同じです。

私はいくつかの助けを得ることができることを願っています

事前に感謝します、完全に感謝します:)

4

1 に答える 1

2

scanf空白を区切り文字として使用して、読み取ったデータをさまざまなフィールドに格納します。コマンド ラインからを入力すると、その文字が入力ストリームにControlZ入れEnterられ、空白の待機が続行されます。もう一度ヒットすると、 は空白文字を受け取り、 を含むすべてが配列に格納されます。EOFscanf()EnterscanfEOFch

これがサンプル実行です。1 行目が入力、2 行目が出力です。

Hello^Z
Hello→
于 2013-01-14T05:25:41.080 に答える