scanfスペースで\ nは文字i/pの区切り文字です。 以下のプログラムは、2つの入力のみを受け入れます。 なぜ2つの入力を受け入れるのか理解できませんでした。この動作について説明してください。c内のscanf()関数
char a,b,c;
scanf("%c%c%c",&a,&b,&c);
printf("%c%c%c",a,b,c);
return 0;
scanfスペースで\ nは文字i/pの区切り文字です。 以下のプログラムは、2つの入力のみを受け入れます。 なぜ2つの入力を受け入れるのか理解できませんでした。この動作について説明してください。c内のscanf()関数
char a,b,c;
scanf("%c%c%c",&a,&b,&c);
printf("%c%c%c",a,b,c);
return 0;
スペースまたはキャリッジリターンで区切らずに文字 '123'を入力すると、 が返され、aは '1'、bは '2'、cは '3'に設定されます。文字をスペース( '1 2 3')で区切った場合、 はaが1、bが ''、cが '3'に設定されます。 空白は入力文字としても扱われます。
:私にはっきりと説明してくれてありがとう。 – Angus
あなたが入力した文字の間にスペースを入れていない場合はは3つの入力を受け付けません。
入力間のスペースを許可する場合は、scanf("%c %c %c",&a,&b,&c);
を使用します。
Oooooohhhhhh、そのOPが望んでいたもの! :-) –
scanf( "%c%c%c"、&a、&b、&c)をスペースなしで入力すると2つの入力を受け取り、scanf( "%c%c%c"、&a、&b 、&c)スペースで。 – Angus
@Beata:最初の文字は3つの連続する文字を読み込みます(空白も読み取ります)。 2番目の文字は3つの空白以外の文字を読みます(したがって、 "123"、 "1 2 3"とそれらの間にスペースがあります) –
"2つの入力を受け入れる"というわけではなく、3つの連続した 'char'を受け入れます。 – Mat