回答編集履歴

1

追記

2021/10/20 10:59

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -23,3 +23,55 @@
23
23
  }
24
24
 
25
25
  ```
26
+
27
+ **追記**
28
+
29
+ 質問を誤解していたようです。
30
+
31
+ 標準入力をファイルに切り替えずに、キーボードからデータを入力すると
32
+
33
+ 1行入力するごとに出力され、表示が混ざるということを解決したかったのですね。
34
+
35
+
36
+
37
+ とりあえず、入力を全部読んでしまうことにします。
38
+
39
+ ```C
40
+
41
+ #include <stdio.h> // fgets, printf, putchar
42
+
43
+ #include <stdlib.h> // strtol, free
44
+
45
+ #include <string.h> // strdup
46
+
47
+
48
+
49
+ int main(void)
50
+
51
+ {
52
+
53
+ char s[256], *t[1000];
54
+
55
+ int n;
56
+
57
+ for (n = 0; n < 1000 && fgets(s, sizeof s, stdin); n++)
58
+
59
+ t[n] = strdup(s);
60
+
61
+ for (int i = 0; i < n; i++) {
62
+
63
+ char *p = t[i], *q;
64
+
65
+ for (int a = -1, b; b = strtol(p, &q, 10), q != p; a = b, p = q)
66
+
67
+ printf("%*c", b - a, '#');
68
+
69
+ putchar('\n');
70
+
71
+ }
72
+
73
+ for (int i = 0; i < n; i++) free(t[i]);
74
+
75
+ }
76
+
77
+ ```