回答編集履歴

2

マークダウンを追加

2020/03/08 04:38

投稿

TsukubaDepot
TsukubaDepot

スコア5086

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- 追記(別解)
73
+ #追記(別解)
74
74
 
75
75
 
76
76
 

1

別解を掲載

2020/03/08 04:38

投稿

TsukubaDepot
TsukubaDepot

スコア5086

test CHANGED
@@ -67,3 +67,55 @@
67
67
  ```
68
68
 
69
69
  Xcodeで`-lncurses`に相当するオプションを指定できればXcodeでもリンクできるとおもいます。
70
+
71
+
72
+
73
+ 追記(別解)
74
+
75
+
76
+
77
+ Windows での例で示された方法も、macOSでやれないわけではありません。
78
+
79
+ `system()` で `clear`を呼び出せば良いのですが、フルパスで指定する必要があります。
80
+
81
+
82
+
83
+ ```C
84
+
85
+ #include<stdio.h>
86
+
87
+ #include<stdlib.h>
88
+
89
+ #include<unistd.h>
90
+
91
+
92
+
93
+ int main(void){
94
+
95
+ printf("Hello World!");
96
+
97
+
98
+
99
+ fflush(stdout);
100
+
101
+ sleep(5);
102
+
103
+
104
+
105
+ system("/usr/bin/clear");
106
+
107
+
108
+
109
+ printf("Hello World! 2");
110
+
111
+ }
112
+
113
+ ```
114
+
115
+
116
+
117
+ ただし注意しなければいけないのは、**標準入出力はバッファリングするので**、たとえば画面の表示を止めている`sleep()`関数の前で、`fflush(stdout)`を使って**意図的に出力を強制する**必要があります(試しに、`fflush()`を削除して実行してみれば違いがわかるかと思います)。
118
+
119
+
120
+
121
+ 一方、この例であれば特別なライブラリは使っていませんので、リンカの指定は不要というメリットもあります。