0

a次の への呼び出しでの意味を示唆できる人はいscanfますか?

scanf("%d a %f",&i,&f)
4

3 に答える 3

3

scanf変数を表す呼び出しで「%」が前に付く文字。

たとえば%d、整数変数%fを表し、浮動小数点変数を表します。

%a (またはエスケープシーケンス\を示すa )が前に付いていない文字は文字どおりに解釈されるため、この場合、 scanf 文字列は一致しますが、一致しません。"%d a %f""233 a 4.5""233 b 4.5"

(より正確に言えば、空白文字は空白文字の連続したシーケンスと一致します。)

于 2013-03-07T05:38:22.943 に答える
1
scanf("%d a %f",&i,&f)

この形式でデータを入力する必要があることを意味します 25 a 33.3

次に、使用して印刷すると

printf("i=%d f=%f",i,f);

そして、出力を次のように取得します

i = 25 , f = 33.3
于 2013-03-07T05:46:55.147 に答える
1

行にあるfため、変数の値を取得していません&scanf("%d a %f",&i,&f)

メモリ内の&変数のアドレスを取得していることを意味しますf&変数の実際の値を取得するには、「」を削除する必要があります。

そして、a:

  • 書式指定子 (%) を除く非空白文字: 空白文字 (空白、改行、またはタブ) または書式指定子 (% 文字で始まる) の一部ではない文字により、関数は次の文字を読み取ります。ストリームから、それをこの非空白文字と比較し、一致する場合は破棄され、関数はフォーマットの次の文字で続行されます。文字が一致しない場合、関数は失敗し、ストリームの後続の文字が読み取られずに返されます。

つまり、入力を次のようにフォーマットしています。

  1. 10 進整数 (%d) を入力してください
  2. 次にスペース
  3. 次に文字「a」
  4. 別のスペース
  5. 次に浮動小数点数 (%f)。

参考:http ://www.cplusplus.com/reference/cstdio/scanf/

于 2013-03-07T06:09:01.053 に答える