回答編集履歴
3
修正案削除
answer
CHANGED
@@ -11,25 +11,4 @@
|
|
11
11
|
|
12
12
|
`tmp[i]` に `buf` を何回か入れてますが、 `buf` は毎回同じ値です。
|
13
13
|
つまり出力するとき、最後に読み込んだ文字列が複数回出力されます。
|
14
|
-
これはまた別のバグなので頑張ってくださいbb
|
14
|
+
これはまた別のバグなので頑張ってくださいbb
|
15
|
-
|
16
|
-
-----------
|
17
|
-
|
18
|
-
追記: コード修正案
|
19
|
-
char 配列が何個かあればいいので例えば buf を二次配列にするとかで対応できます。
|
20
|
-
|
21
|
-
```
|
22
|
-
#include<stdio.h>
|
23
|
-
|
24
|
-
int main(){
|
25
|
-
char buf[3][100];
|
26
|
-
int count = 0;
|
27
|
-
while (fgets(buf[count], sizeof(buf[count]), stdin) != NULL) {
|
28
|
-
count = (count + 1) % 3;
|
29
|
-
}
|
30
|
-
for (int i = 0; i < 3; i++) {
|
31
|
-
printf("%s", buf[i]);
|
32
|
-
}
|
33
|
-
return 0;
|
34
|
-
}
|
35
|
-
```
|
2
修正案追記
answer
CHANGED
@@ -11,4 +11,25 @@
|
|
11
11
|
|
12
12
|
`tmp[i]` に `buf` を何回か入れてますが、 `buf` は毎回同じ値です。
|
13
13
|
つまり出力するとき、最後に読み込んだ文字列が複数回出力されます。
|
14
|
-
これはまた別のバグなので頑張ってくださいbb
|
14
|
+
これはまた別のバグなので頑張ってくださいbb
|
15
|
+
|
16
|
+
-----------
|
17
|
+
|
18
|
+
追記: コード修正案
|
19
|
+
char 配列が何個かあればいいので例えば buf を二次配列にするとかで対応できます。
|
20
|
+
|
21
|
+
```
|
22
|
+
#include<stdio.h>
|
23
|
+
|
24
|
+
int main(){
|
25
|
+
char buf[3][100];
|
26
|
+
int count = 0;
|
27
|
+
while (fgets(buf[count], sizeof(buf[count]), stdin) != NULL) {
|
28
|
+
count = (count + 1) % 3;
|
29
|
+
}
|
30
|
+
for (int i = 0; i < 3; i++) {
|
31
|
+
printf("%s", buf[i]);
|
32
|
+
}
|
33
|
+
return 0;
|
34
|
+
}
|
35
|
+
```
|
1
別のバグについて追記
answer
CHANGED
@@ -3,4 +3,12 @@
|
|
3
3
|
僕の手元でやると `0x7ffee3fc7440` が `64` に切り詰められました。
|
4
4
|
で printf の %s が `64` を読もうとして segmentation fault という流れですね。
|
5
5
|
|
6
|
-
`char tmp [100];` を `char* tmp [100];` にすると直ります。
|
6
|
+
`char tmp [100];` を `char* tmp [100];` にすると直ります。
|
7
|
+
|
8
|
+
-----------
|
9
|
+
|
10
|
+
追記
|
11
|
+
|
12
|
+
`tmp[i]` に `buf` を何回か入れてますが、 `buf` は毎回同じ値です。
|
13
|
+
つまり出力するとき、最後に読み込んだ文字列が複数回出力されます。
|
14
|
+
これはまた別のバグなので頑張ってくださいbb
|