C/C++の宿題片付けます 144代目
■ このスレッドは過去ログ倉庫に格納されています
0683デフォルトの名無しさん
2010/12/17(金) 21:40:11scanf( "%d", &n ); に対して 3\n を入力すると、n に 3 が代入されるけど、stdin のバッファには \n が残ってる
その後に scanf( "%c", &moji ) を実行するとバッファの \n がmoji に代入されるから入力を待たずに復帰する
> 小文字変換は's',大文字変換は'd'と入力:1番目の文字を入力:s
この行はこれで説明が付くけど
> 2番目の文字を入力:3番目の文字を入力
こうはならない気がする
scanf は癖が有るので対話的入力を行うなら fgets() で一旦文字列として受け取ってから sscanf() で必要な項目を
抽出した方が良いと思うよ
char tmp[128];
fgets( tmp, 128, stdin );
sscanf( tmp, "%d", &n );
みたいな感じで
蛇足だけど scanf("%s",&str[i]); ではなく scanf( "%c", &str[i] ) じゃないかな、%s だとバッファオーバーランの可能性が生じる
■ このスレッドは過去ログ倉庫に格納されています