私はCプログラミングの初心者で、今はscanf
を学んでいます。scanf()で私のコードを説明するには?
私はいくつかのコードを書いており、私はそれを理解しようとしています。ここで
はコードです:
#include <studio.h>
int main(){
int a=1, b=2, c=3;
scanf ("%d%d", &a,&b);
scanf ("%d", &c);
scanf ("%d", &c);
printf ("a=%d\nb=%d\nc=%d\n", a, b, c);
return 0;
}
When I input
11 22 33 44
The output is
a=11
b=22
c=44
これは正常です。しかし、私が入力したとき:
11, 22, 33, 44
Output
a=11
b=2
c=3
入力プロセスが停止しているようです。
なぜこのようなことが起こっているのですか?
(それは%d, %d"
」のようなものです)%d%d
間のカンマを入れ、入力データを提供する際に、実際に、入力はカンマで分離しなければならない。
scanf
パラメータに私にカンマためのいくつかの提案を与えることができますか?
'scanf'はあなたが指定した入力を解釈しようとします。これは明らかに最初の '%d 'に対してうまくいきます。それは'、 'を読み込み、それを整数に変換しようとしますが、これはうまくいきません。だから失敗し、値は前と同じ値になります( 'b = 2')。 次の 'scanf'は同じことを試み、再び失敗し、' c = 3'となります。 値を '、'で区切ってはいけません。うまくいくでしょう。 – SgtDroelf
'scanf()'がどのように動作するかを推測しようとするのではなく、使用しているテキストにドキュメントやその説明を読み込むのはどうですか?あなたのインストラクターに相談することもできますか?私たちはあなたがここで助けを求める前に、あなた自身のための解決策を見つけるために合理的な努力をすることを期待します。 –
ご返信ありがとうございます。私は自分でCを学ぶ時、インストラクターは私を助けません。 – user7241487