ページ 11

Cでの質問です

Posted: 2012年12月17日(月) 08:32
by kanto
Cでの質問です
char型で入力した1文字をprintf("%d",a)で表示するのですが
考え方が全くわかりません
教えていただけると助かります

Re: Cでの質問です

Posted: 2012年12月17日(月) 08:41
by non
うまく行かないプログラムを添付してください。

Re: Cでの質問です

Posted: 2012年12月17日(月) 18:33
by nil
何がわからないのかもはっきりと書き込むべきです。
読み込むことがわからないのですか?
表示することがわからないのですか?

char型の書式指定子は%cです。
読み込んだ文字を数字として表示するのであればそれで構いませんが。

Re: Cでの質問です

Posted: 2012年12月17日(月) 20:25
by てんむすキツネ
考え方がわからないということは
まだ実際にプログラムを組んだわけでは無いのでしょうか?
一度フォーラムルールを見ておくと
的確な質問がしやすいかもしれません。

なんの記号がどういう意味であるか説明をすれば良いのでしょうか。
printfは関数というものです。
関数の後にくる()に渡したい情報を与えます。

後、関数の最後には;をつけます。このまま書くとエラーになるでしょう。
この理由は最後に説明します。

printfは
情報を与えると
その内容を表示します。

ここまでは理解されているかと思います。

パソコン内では
'A' も 65 も同じものです。(65だったかどうかは忘れましたが)
AだけでなくBにもCにも対応する数字があります。

%dというのは
「整数型で、与えられた情報を表示しますよ」
という意味です。

%cは
「文字として、与えられた情報を表示しますよ」
という意味になります。

,の右に置くのが
「その%~で表示するもの」
です。

printf( "%d" , a );
とするとaに代入されている値を
「整数型」(%d)で表示します。

つまり、Aという文字がaの中身であるなら
画面には
65
と表示されることになります。

ここで皆様が言われている
charは%cと言われているのは
%dのままでは数字が表示されてしまい
aの中身を文字として表示することはできませんよ
という意味です。

また"%d"の" "についてですが
これはその中が文字列であることを表します。

変数というものはご存知だと思います。
そこに「apple」という変数があったとします。
しかし、そのappleとは関係なく
まったく別の処理として
画面にappleと表示しようとしたとします。

もし、文字列として認識する" "がなければ
プログラムにおいて
printf( apple );のappleは
変数のappleとしてみなされてしまいます。
それを防ぐためにも" "は必要です。

最後に;を付ける理由ですが
これは関数や、代入といった処理の終わりを指します。
if文などを使う場所までいっていないのなら
とりあえず処理の終わりには;をつける
と覚えておいてください。
例:x = 15;

とても長文になりましたが
望んでいた回答でなかったかもしれません。
また伝わりにくい部分があれば申し訳ございません。