2011-11-07 17 views
1

2つの数字をスペースで区切って入力し、2つの数字を2要素の配列に配置します。 array[0] = 1array[1] = 6Cの1入力行から複数​​の値を読み取る

は、私はCでこれを行うだろうか

Please enter two values: 
    >> 1 6 

:例えば、それはのように見えるのでしょうか?おそらくscanf()を用い

答えて

3

: `で

if (scanf("%d %d\n", &i1, &i2) != 2) 
    ...oops... 
+0

"は、%D%D \ n"' '\のN 'は、空間と変わりません。 '"%d%d%c "'を実行し、最後の文字が ''\ n' 'であることを確認する方が良いでしょう。 –

+0

ほとんどの場合、scanf形式のスペースや改行は実際には必要ありません。 '"%d%d "'がはるかに優れています。 –

+0

振り返ってみると(2年後)、私はこの答えを書き直すだろう。書式文字列の末尾のスペース(改行)は、EOFまで、または空白でないものが取得されるまで、入力がスキャンを停止しないため、コードが人間によって駆動される場合、災害です。そのようなケースを 'fgets()'で処理して行全体を取得し、 'sscanf()'を使って解析を処理する方が一般に良いでしょう。入力の全体が使用されたかどうかを判断する方法があります(2つの数字と空白のみ)。フォーマットの途中の空白は、問題のほうが少なく、現在のシナリオでは問題ではありません。 –

0
int arr[2], i; 
printf("Enter two values"); 
for(i = 0; i < 2; i++) 
{ 
    scanf("%d", arr + i); 
} 
+2

答えを説明してください。それはなぜ正しいですか?このコードは何をしていますか? – 0x499602D2

関連する問題