掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++のscanf()の文字入力で、入力済みの変数が変更されてしまう。 (ID:57482)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
#include <stdio.h> int main() { char ch; int i , j; printf("i="); scanf("%d",&i); printf("j="); scanf("%d",&j); printf("i=%d,j=%d\n",i,j); fflush(stdin); printf("1文字="); scanf("%1s",&ch); printf("i=%d,j=%d,ch=%c\n",i,j,ch); return 0; } 上のプログラムをVC++でコンパイルして実行すると、文字入力することで、iの値だけが、必ず 0 にリセットされてしまいます。 同じソースをボーランドでコンパイルすると、このようなことは起こりませんでした。 scanfで入力された段階でメモリーにそれぞれの変数が値を持って確定されているでしょうし、新たにstdinで文字を入力することで、これらの変数が影響を受けてしまうのが腑に落ちません。 理由や対処方法をご存知の方がおられましたら、よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.