回答編集履歴
2
誤字修正
answer
CHANGED
@@ -9,7 +9,10 @@
|
|
9
9
|
次のように代入抑止を使うと改行文字を上手く捌くことができます。
|
10
10
|
```C
|
11
11
|
scanf("%c%d%d%d%d%d%*c", 略...);
|
12
|
-
~~~ 一文字
|
12
|
+
~~~ 一文字分空読みしてくれる
|
13
13
|
```
|
14
14
|
|
15
|
-
参考: [Wikipedia - scanf - 改行文字の取り扱い](https://ja.wikipedia.org/wiki/Scanf#%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84)
|
15
|
+
参考: [Wikipedia - scanf - 改行文字の取り扱い](https://ja.wikipedia.org/wiki/Scanf#%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84)
|
16
|
+
|
17
|
+
scanfが欠陥を孕んだ関数であることは確かなので、早い段階で捨ててしまうのも大いにアリです。
|
18
|
+
個人的には学習目的で使う分には構わないんじゃないかとも思いますが。
|
1
追記
answer
CHANGED
@@ -2,4 +2,14 @@
|
|
2
2
|
for(i=0; i<n; i++)scanf("%c%d%d%d%d%d", &t[n], &e[n], &m[n], &s[n], &j[n], &g[n]);
|
3
3
|
> ```
|
4
4
|
|
5
|
-
引数に渡すべきアドレスは &t[n] ではなく &t[i] では。他も同様。
|
5
|
+
引数に渡すべきアドレスは &t[n] ではなく &t[i] では。他も同様。
|
6
|
+
|
7
|
+
---
|
8
|
+
scanfで入力を読み取るときは、バッファに改行文字が残ることに留意する必要があります。
|
9
|
+
次のように代入抑止を使うと改行文字を上手く捌くことができます。
|
10
|
+
```C
|
11
|
+
scanf("%c%d%d%d%d%d%*c", 略...);
|
12
|
+
~~~ 一文字文空読みしてくれる
|
13
|
+
```
|
14
|
+
|
15
|
+
参考: [Wikipedia - scanf - 改行文字の取り扱い](https://ja.wikipedia.org/wiki/Scanf#%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84)
|