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

回答編集履歴

1

追記

2018/12/26 08:47

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -2,4 +2,9 @@
2
2
 
3
3
  綺麗については個人的趣向が多々あるので割愛しますが・・・
4
4
  まず、xxxf関数(scanf,printfなど)は恐ろしく遅い関数です。(固定長で送られてくる数値をsscanf()で変換していたのをそれ専用の関数にしたら8〜10倍ほど早くなった経験があります)
5
- また、fgets()でバッファに文字が残ったかどうかは、読み込んだ文字列に改行が含まれているかどうかで判断できるのでfgets()を推奨します。
5
+ また、fgets()でバッファに文字が残ったかどうかは、読み込んだ文字列に改行が含まれているかどうかで判断できるのでfgets()を推奨します。
6
+
7
+ 追記:
8
+ > scanfの挙動故にspaceで区切られちゃってますね。
9
+
10
+ scanf()は言われたとおりにしか動きません。で、fgets()で1行読み込んで問題がないことを確認の上数値に変換する必要があります。あと、空白も読み込むといううことは数字の前後も確認しなくてはいけません。・・・安全第一ならば、入力された文字が該当なものかすべて確認が必要ですd^^