switch文 について | システム開発科 | 受講者用Q&Aフォーラム

通知
すべてクリア

switch文 について

   RSS

0
Topic starter

Sample05_06プロジェクトを入力し実行すると

 

現在の雲量を入力してください。

晴れ:1、曇り:2、雨:3¥n(¥はキー半角(ろ)で入力)

 

と表示され、数字を入力してもcaseごとの表示がされません。

何度も入力を繰り返し、再度実行するも同じ表示になり、ビルド、実行するとたまに文字化けしたりもします。

(文字化けは、ほかのプログラムでも何度も起こっております。)

原因がわかりません。

回答よろしくお願いいたします。

2件の回答
0

メンターの鹿島と申します。
ご質問ありがとうございます。

Sample05_06プロジェクトを入力し実行すると

 

現在の雲量を入力してください。

晴れ:1、曇り:2、雨:3¥n(¥はキー半角(ろ)で入力)

 

と表示され、数字を入力してもcaseごとの表示がされません。

Sample05_06のプログラムを実行すると上記の表示がされた後、
1と入力したら"今日はハイキングに行きましょう。"と"コンビニでお弁当を買いましょう。"
2と入力したら"今日は映画鑑賞に行きましょう。"と"お昼ごはんはマクドナルド。"
3と入力したら"ツタヤでDVDを借りてきましょう。"と"お昼ごはんは近所の満腹食堂。"
が表示されるはずなのに、表示が出てこないということかと思います。
("1か2か3を入力してください"というメッセージが出ているのでしょうか?)

実際に作成して頂いたプログラムを見ていないので、明確な原因はわかりませんが、可能性がある点として
1.入力をうまくプログラムが受け取れていない
2.switchの文で参照しているweatherのデータがおかしな値になっている
というようなことではないかと思います。

1の要因としてはeclipseでscanf関数を使う場合、scanfより前で「setvbuf(stdout, NULL, _IONBF, 0);」を行う必要があります。
これをしていないとeclipseではキーボード入力で受け取ることがうまくできません。
あとscanf関数で受け取るのは整数の値になりますので"%d"とし、受取先の変数には&を付けておく必要がありますので、
このような「scanf("%d", &weather);」という記述になります。

もう1つの問題点として

何度も入力を繰り返し、再度実行するも同じ表示になり、ビルド、実行するとたまに文字化けしたりもします。

(文字化けは、ほかのプログラムでも何度も起こっております。)

原因がわかりません。

ということで、実行結果の表示が文字化けするということでしょうか。
(プログラムのコードなどが文字化けする場合は別の対処が必要です。)

これについては表示に使われているEclipseの日本語の文字コード設定が原因です。
下記の手順で設定を変更してみて下さい。
①Eclipseのメニューから「ウィンドウ(W)」→「設定(P)」を選択
 設定のウィンドウが表示されます。
②設定画面左側で「一般 ⇒ 外観 ⇒ 色とフォント」を選択
③画面右側で「デバッグ ⇒ コンソールフォント」を選択
④右側の「編集」ボタンをクリック
 フォント設定のウィンドウが表示されます。
⑤フォント名「Consolas」となっているのであれば
 こちらを「MS ゴシック」に変更して「OK」ボタンをクリックして下さい。
以上の設定変更を行った後、プログラムを実行して出力表示が文字化けしているかご確認下さい。

もしこれでも解決できないようでしたら他の要因も確認が必要かと思われますので、お気軽にご質問ください。
よろしくお願いいたします。

0
Topic starter

質問回答ありがとうございます。

1.switch文について

&が抜けていたようです、再度入力しうまく実行できました。

2.文字化けについて

いただいた設定をしてプログラミングすると今のところは文字化けがなくなりました。

再度、文字化けするようでしたら連絡いたします。

この度は、ありがとうございました。

 


タイトルとURLをコピーしました