以下のプログラムを実行したのですが
#include<stdio.h>
#include<math.h>
main(){
int i,b=5;
char c;
for(i=0;i<=9;++i){
printf("%d\n",b);
scanf("%c",c);←入力は自由
}
return 0;
}
結果 | 予想
5 | 5
a | a
5 | 5
5 | a
a | 5
5 | a
5 | 5
a | a
と予想と違う結果が繰り返されるんですが
なぜか分かりません。アドバイスを頂けな
いでしょうか?
No.1ベストアンサー
- 回答日時:
scanf("%c",c);だと、標準入力バッファから1バイトしか取り込みません。
あなたは画面が停止したときにキーボードを2回たたいていませんか。(予想では、aとリターンの2回)
改行文字も1バイトに数えます。
char c;をchar s[32];などとして、
scanf("%c",c);をscanf("%s", s);と変えればあなたの思っている動作になるのではないでしょうか。
&を付け忘れていました。
%sにすれば予想していた結果になりました。
なぜ%sにすればなるのか研究してみたいとおいます。解決することができました。ありがとうございました。
No.3
- 回答日時:
よくわからないけど・・・、こんな感じ?
#include<stdio.h>
#include<math.h>
main(){
int i,b=5;
char c;
for(i=0;i<=9;++i){
printf("%d\n",b);
scanf("%c%*s",&c);
}
return 0;
}
%c%*sは一文字入力した後、そのあとの文字列を読み込むけど代入はしないといったかんじです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
C言語について
-
C言語 逆ピラミッドの作り方
-
漢字のソートについて
-
プログラミングの問題で、キー...
-
4桁の数字以外を入力したらエラ...
-
入力候補を表示させるには・・・?
-
double型が正常に認識されてい...
-
プログラムC言語の整数の約数に...
-
C言語 While文(ループ)内の...
-
c言語でひらがなのしりとりをで...
-
if文の条件にscanf関数を使うと…?
-
java初心者です。入力されたの...
-
scanf("%s", buf);でスペースを...
-
VBでの日付入力値のフォーマッ...
-
getchar()について 教えてくだ...
-
Linuxで入力待ちなしkeyread関...
-
cout関数を使っているのですが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
プログラミング初心者です。 Py...
-
double型が正常に認識されてい...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語scanf_sで何故か2回入力に...
-
if文の条件にscanf関数を使うと…?
-
プログラミングの問題です 「金...
-
Linuxで入力待ちなしkeyread関...
-
ワードで文字を入力する時の変...
-
cout関数を使っているのですが...
-
batプログラム上で文字列を入力...
-
Userformの入力順序をタブオー...
-
scanf が無視されます
-
C言語 逆ピラミッドの作り方
-
gets_sがうまく動かない
-
Excel VBAで、Application.Inpu...
おすすめ情報