1

次の文の「変換された値ごとに」とはどういう意味ですか?

Q: 通話が機能しないのはなぜscanf("%d", i)ですか?

A: 渡す引数scanfは常にポインターでなければなりません:変換された各値に対して、scanf は、ポインターを渡した場所の 1 つを埋めることによってそれを「返します」。(質問 20.1も参照してください。) 上記のフラグメントを修正するには、 に変更しscanf("%d", &i)ます。

c-faqでこれを見つけました。それは質問12.12です。

4

2 に答える 2

2

scanf()1 回の呼び出しで複数の値をスキャンできます。例えば:

int numConverted = scanf("%d %f %d", &myInt1, &myFloat, &myInt2);

注: ただし、戻り値を常に調べて、実際に変換された数を確認する必要があります。

于 2013-04-09T19:54:38.573 に答える
2

scanf("%d", &i)inputで実行すると123、文字シーケンス123は値に変換され、intに格納されiます。

これは、キャストによって指定される型変換ではありませんが、「変換」と呼ぶのが妥当です。

于 2013-04-09T20:02:40.273 に答える