4

c私は、標準入力の内容を読み取って出力するテスト プログラムの作成を任されました。

しかし、私は少し疑問があります: 正確には何standard inputですか?

キーボードで入力したものですか?それは私が読まなければならないファイルですか?

両方とも?

ありがとう。

4

3 に答える 3

5

「標準入力」とは、ファイル記述子 0 に関連付けられている特定の入力ストリームを指します。これはscanf、 、getchar、 (絶対に使用しないgetsでください) などのすべてが読み取られるストリームです。基本的に、引数として a を取らない stdio 入力関数は、標準入力から読み取っています。 FILE *

通常コンソールに関連付けられていますが、リダイレクトしてファイルまたは他のデバイスから読み取ることができます。

例えば、

scanf( "%d", &someVal );

と同等です

fscanf( stdin, "%d", &someval );

どちらの関数も標準入力 ( stdin) から読み取ります。

于 2013-10-23T14:22:07.440 に答える
4

コマンドラインからプログラムを実行するときにキーボードで入力するものです

プログラム用に定義された 3 つの標準ストリームの 1 つです。

コマンドラインでプログラムを起動すると、端末にテキストを入力でき、そのテキストはプログラムの標準入力ストリームに渡されます

他の 2 つのストリームは、端末に表示される標準出力と、標準出力にあってはならないエラー メッセージを表示するエラー ストリームです。

ほとんどの端末では、次のようにファイルとの間でストリームをリダイレクトできます。

myprog.exe < file_to_read.txt 

file_to_read.txt が読み込まれ、入力ストリームに渡されます

于 2013-10-23T11:36:42.783 に答える
1

ウィキペディアから:

Unless redirected, input is expected from the keyboard which started the program.

于 2013-10-23T11:37:29.853 に答える