teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

fflush(stdout); の追加

2020/06/16 05:15

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -2,4 +2,22 @@
2
2
  scanf("%c\n", &c); のように書式の文字列に "\n" を入れていませんか?
3
3
 
4
4
  scanf の書式の "\n" の意味を知らずに、入れてはいけません。
5
- 最後の scanf("%lf\n", &x); も同じです。"\n" を入れてはいけません。
5
+ 最後の scanf("%lf\n", &x); も同じです。"\n" を入れてはいけません。
6
+
7
+ **追記**
8
+ 念のため printf の後に、fflush(stdout); を入れてみてください。
9
+ ```C
10
+ #include <stdio.h>
11
+
12
+ int main(void)
13
+ {
14
+ char c;
15
+ printf("char>"); fflush(stdout); scanf("%c", &c);
16
+ int n;
17
+ printf("int>"); fflush(stdout); scanf("%d", &n);
18
+ double x;
19
+ printf("double>"); fflush(stdout); scanf("%lf", &x);
20
+ printf("char=%c\t int=%d\t double=%f\n", c, n, x);
21
+ return 0;
22
+ }
23
+ ```

1

誤記訂正

2020/06/16 05:15

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  本当にそのコードですか?
2
2
  scanf("%c\n", &c); のように書式の文字列に "\n" を入れていませんか?
3
3
 
4
- scanf の書式の "\n" を知らずに、入れてはいけません。
4
+ scanf の書式の "\n" の意味を知らずに、入れてはいけません。
5
5
  最後の scanf("%lf\n", &x); も同じです。"\n" を入れてはいけません。