2つの数字をスペースで区切って入力し、2つの数字を2要素の配列に配置します。 array[0] = 1
とarray[1] = 6
Cの1入力行から複数の値を読み取る
は、私はCでこれを行うだろうか
Please enter two values:
>> 1 6
:例えば、それはのように見えるのでしょうか?おそらくscanf()
を用い
2つの数字をスペースで区切って入力し、2つの数字を2要素の配列に配置します。 array[0] = 1
とarray[1] = 6
Cの1入力行から複数の値を読み取る
は、私はCでこれを行うだろうか
Please enter two values:
>> 1 6
:例えば、それはのように見えるのでしょうか?おそらくscanf()
を用い
: `で
if (scanf("%d %d\n", &i1, &i2) != 2)
...oops...
int arr[2], i;
printf("Enter two values");
for(i = 0; i < 2; i++)
{
scanf("%d", arr + i);
}
答えを説明してください。それはなぜ正しいですか?このコードは何をしていますか? – 0x499602D2
"は、%D%D \ n"' '\のN 'は、空間と変わりません。 '"%d%d%c "'を実行し、最後の文字が ''\ n' 'であることを確認する方が良いでしょう。 –
ほとんどの場合、scanf形式のスペースや改行は実際には必要ありません。 '"%d%d "'がはるかに優れています。 –
振り返ってみると(2年後)、私はこの答えを書き直すだろう。書式文字列の末尾のスペース(改行)は、EOFまで、または空白でないものが取得されるまで、入力がスキャンを停止しないため、コードが人間によって駆動される場合、災害です。そのようなケースを 'fgets()'で処理して行全体を取得し、 'sscanf()'を使って解析を処理する方が一般に良いでしょう。入力の全体が使用されたかどうかを判断する方法があります(2つの数字と空白のみ)。フォーマットの途中の空白は、問題のほうが少なく、現在のシナリオでは問題ではありません。 –