- ベストアンサー
printfを代入する?
#include <stdio.h> int main(void) { int kaerichi,nyuuryokumoji; char moji[40]; printf("\n数字を入力してください:"); scanf("%d",&nyuuryokumoji); kaerichi=printf("%d",nyuuryokumoji); printf("\n入力数字の桁数は%dです\n",kaerichi); printf("\n文字を入力してください:"); scanf("%s",&moji); kaerichi=printf("%s",moji); printf("\n入力された文字は%dです\n",kaerichi); return(0); } このプログラムでkaerichi=print("d",nyuuryokumoji); とありますがどういう意味でしょうか? 変数に数字などを入れるのはわかるのですが printfをいれるというのがあまりよくわかりません あとどうして桁数がでるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご質問は下記の2行の意味についてですね。 kaerichi=printf("%d",nyuuryokumoji); kaerichi=printf("%s",moji); これを理解するには「printf()関数」の関数仕様を調べる必要があります。 #1さんの回答にあるように、printf()は、それを実行した結果 出力した文字数(バイト数)をint型の値として返します。従って、 kaerichi=printf("%d",nyuuryokumoji); では、整数値nyuuryokumojiを10進文字列形式で出力したときの 文字数がkaerichiに代入され、2番目の kaerichi=printf("%s",moji); では、文字列mojiを出力した時の文字数がkaerichiに代入されます。 C言語でわからない時は、使用している関数の仕様を調べてみる ようにするといいと思います。
その他の回答 (1)
- tatsu99
- ベストアンサー率52% (391/751)
printf関数は、戻り値として、printfが処理したデータのバイト数を返します。従って、この場合は、入力された文字をprintfで画面に表示していますので、入力された文字の桁数を返します。
お礼
ということは12だと2バイト123だと3バイトと いうことでしょうか? それでたまたま?バイト数と桁数が同じに なっているから文字の桁数を返しているということでしょうか? 回答ありがとうございました
お礼
詳しい解説に参考URLありがとうございました^^ お気に入りにいれておこうと思います