掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++のscanf()の文字入力で、入力済みの変数が変更されてしまう。 (ID:57488)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
#include <stdio.h> int main() { char ch; int i,j; printf("i="); scanf("%d",&i); printf("j="); scanf("%d",&j); printf("ch="); scanf("%[+-*/]",&ch); printf("%c %d %d",ch,i,j); return 0; } だとバファに残留してる改行コードを読み込んでしまってる感じで、 #include <stdio.h> int main() { char ch; int i,j; printf("i="); scanf("%d",&i); printf("j="); scanf("%d",&j); fflush(stdin); printf("ch="); scanf("%[+-*/]",&ch); printf("%c %d %d",ch,i,j); return 0; } と、fflush(stdin)を追加すると、やはりnull追加で・・みたいになるようです。先にchをscanfして、fflush(stdin)してから、i,jをscanfすると丁度いいみたい。 ややこしいです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.