プログラムは次のとおりです。
#include "stdio.h"
int main()
{
int minx, x, y, z;
printf("Enter four ints: ");
scanf( "%i %i %i %i", &minx, &x, &y, &z);
printf("You wrote: %d %d %d %d", minx, x, y, z);
}
次のように入力したら、1 2 3 4 と入力します (次に を押しenterます)。入力バッファを実行して読み取りますscanf()= 1 (スペース) 2 (スペース) 3 (スペース) 4 (スペース)(\n) (\n) まで読み取り、\n はバッファに残ります。
次のように入力した場合: 1 (次に を押すenter) 2 (次に を押すenter) 3 (次に を押すenter) 4 (次に を押すenter)。入力バッファを実行して読み取りますscanf()= 1(\n)2(\n)3(\n)4(\n)(\n)。
これらの 2 つのケースでscanf()は、改行、空白をスキップし、int.
しかし、 1 を入力すると (次に を押しますenter)(次に を押しenterます)...を押しscanf()続けると、 は実行されませんenter。
私の質問は次のとおりです。何がトリガーされますscanf()か? すべての正しい%dものがバッファに配置されたことを認識した後にのみ実行され、ユーザーがEnterキーを押した場合に実行されますか?