C統合・質問スレッド
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
300:デフォルトの名無しさん 05/02/09 17:03:27 #include <stdio.h> void main(void) { int i; char a[5]; for(i = 0; i < 5; i++){ printf("何か1文字入力する\n"); scanf("%c",&a[i]); } printf("%c,%c,%c,%c,%c\n",a[1],a[2],a[3],a[4],a[5]); } 非常に簡単な質問で申し訳ないのですが… このプログラムを実行するとforのi=2,i=4のときのscanfが飛ばされてしまいます。 その後の結果表示も何かおかしいのです。 自分なりに調べてはみましたが、一体何が悪いのかがわかりません。 コンパイラはBorland C++ Compiler 5.5を使っています。 301:デフォルトの名無しさん 05/02/09 17:06:20 改行コードもsacanfだな 302:デフォルトの名無しさん 05/02/09 17:37:54 void main(void) { int i; char a[5]; // ←範囲は、0〜4までで 5個 char b[1024]; for(i = 0; i < 5; i++){ printf("何か1文字入力する\n"); scanf("%s",&b); // バッファーフォローの危険性があり、実務だと駄目! a[i] = b[0]; } printf("%c,%c,%c,%c,%c\n",a[0],a[1],a[2],a[3],a[4]); } こんな感じだけど、入力は別関数を作ってね!
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5386日前に更新/239 KB
担当:undef