構造体を学ぶためのプログラムを作ってみたのですが,naru.name2の"前原"が実行画面では、数字になって出力されてしまいます。
”前原”を正しく出力するにはどのように修正すればよいのでしょうか。
ご指導よろしくお願いいたします。
C++ 構造体について
Re: C++ 構造体について
単純に
printf("%s\t%s\n" , naru.name,naru.name2);
とすれば文字として出力されますが、このプログラムは構造体の使い方が間違っています。
名前と年齢を表示するプログラムなら、構造体のメンバは↓のように名前と年齢になるはずです。
struct {
char *name;
int old;
}naru;
複数の名前を扱いたいのであれば、構造体の配列を使ってください。
printf("%s\t%s\n" , naru.name,naru.name2);
とすれば文字として出力されますが、このプログラムは構造体の使い方が間違っています。
名前と年齢を表示するプログラムなら、構造体のメンバは↓のように名前と年齢になるはずです。
struct {
char *name;
int old;
}naru;
複数の名前を扱いたいのであれば、構造体の配列を使ってください。
Re: C++ 構造体について
名前と「年齢」を出力したいんじゃないんですか?
年齢って数値ですよね。「前原」って、数値ですか?
このプログラムで何がしたいのか、よくわからないです。
# oldよりもageの方が、年齢を表わす変数名としてはふさわしいんじゃないかなぁ、なんて思ったり思わなかったり。
年齢って数値ですよね。「前原」って、数値ですか?
このプログラムで何がしたいのか、よくわからないです。
# oldよりもageの方が、年齢を表わす変数名としてはふさわしいんじゃないかなぁ、なんて思ったり思わなかったり。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C++ 構造体について
このプログラムは名前と年齢を出力する構造体のプログラムを改変したものです。
ご指摘の通り、名前を両方出力することはできるか、ということに着目して書いたので、何をしたいか、という点では明確なプログラムとは言えません。
h2so5 様の書かれたcodeに従い、修正したところ無事出力できました。
ご指導ありがとうございます。
ご指摘の通り、名前を両方出力することはできるか、ということに着目して書いたので、何をしたいか、という点では明確なプログラムとは言えません。
h2so5 様の書かれたcodeに従い、修正したところ無事出力できました。
ご指導ありがとうございます。
Re: C++ 構造体について
改変するなら徹底的に。
char * 型を出力するための書式が %d ではおかしい、ということにすぐ気づくべき。
char * 型を出力するための書式が %d ではおかしい、ということにすぐ気づくべき。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C++ 構造体について
ageをど忘れしていました。すみません。box さんが書きました:# oldよりもageの方が、年齢を表わす変数名としてはふさわしいんじゃないかなぁ、なんて思ったり思わなかったり。
(-_-;) 名詞のoldに年齢という意味はないようなので、ageの方が正しいです。