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

回答編集履歴

3

ソース修正

2016/08/19 09:03

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  {
10
10
  int num;
11
11
  double dnum;
12
- char ch0, ch1, ch2;
12
+ char ch0, ch1;
13
13
  char str[81];
14
14
 
15
15
  printf("整数を入力:"); scanf_s("%d", &num);
@@ -19,7 +19,7 @@
19
19
 
20
20
  printf("[%d]です\n", num);
21
21
  printf("[%f]です\n", dnum);
22
- printf("[%c]\n", ch0);
22
+ printf("[%c][%c]\n", ch0, ch1);
23
23
  printf("[%s]\n", str);
24
24
 
25
25
  printf("プログラムを終了するには何かキーを押してください...\n");

2

追記

2016/08/19 09:03

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -14,12 +14,12 @@
14
14
 
15
15
  printf("整数を入力:"); scanf_s("%d", &num);
16
16
  printf("実数を入力:"); scanf_s("%lf", &dnum);
17
- printf("英字1文字と改行入力:"); scanf_s("%*c%c%c%c", &ch0, &ch1, &ch2);
17
+ printf("英字1文字と改行入力:"); scanf_s("%*c%c%c", &ch0, 1, &ch1, 1);
18
18
  printf("英文字列と改行入力:"); scanf_s("%s", str, sizeof(str));
19
19
 
20
20
  printf("[%d]です\n", num);
21
21
  printf("[%f]です\n", dnum);
22
- printf("[%c][%c][%c]\n", ch0, ch1, ch2);
22
+ printf("[%c]\n", ch0);
23
23
  printf("[%s]\n", str);
24
24
 
25
25
  printf("プログラムを終了するには何かキーを押してください...\n");

1

追記

2016/08/19 09:00

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,3 +1,30 @@
1
1
  [scanf_sの落とし穴](http://blogs.yahoo.co.jp/tx_b19_89_ta/19629287.html)
2
2
 
3
- 一度 str への入力でバッファサイズをつけて試してみてください。
3
+ 一度 str への入力でバッファサイズをつけて試してみてください。
4
+ ###追記
5
+ とりあえずこれで動きました。
6
+ ```C
7
+ #include <stdio.h>
8
+ int main()
9
+ {
10
+ int num;
11
+ double dnum;
12
+ char ch0, ch1, ch2;
13
+ char str[81];
14
+
15
+ printf("整数を入力:"); scanf_s("%d", &num);
16
+ printf("実数を入力:"); scanf_s("%lf", &dnum);
17
+ printf("英字1文字と改行入力:"); scanf_s("%*c%c%c%c", &ch0, &ch1, &ch2);
18
+ printf("英文字列と改行入力:"); scanf_s("%s", str, sizeof(str));
19
+
20
+ printf("[%d]です\n", num);
21
+ printf("[%f]です\n", dnum);
22
+ printf("[%c][%c][%c]\n", ch0, ch1, ch2);
23
+ printf("[%s]\n", str);
24
+
25
+ printf("プログラムを終了するには何かキーを押してください...\n");
26
+ char x;
27
+ scanf_s("%*c%c", &x);
28
+ return 0;
29
+ }
30
+ ```