回答編集履歴
1
加筆
test
CHANGED
@@ -49,3 +49,15 @@
|
|
49
49
|
}
|
50
50
|
|
51
51
|
```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
[公式リファレンス](https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/format-specification-fields-scanf-and-wscanf-functions?view=msvc-160)曰く:
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
> 書式は左から右へ読み取られます。 **書式指定以外の文字は、入力ストリーム内の一連の文字列に一致するものと想定されます**。これらの文字は入力ストリーム内でスキャンされますが格納はされません。 **入力ストリーム内の文字が書式指定に合わないと、scanf 関数は終了し、その文字は読み取られなかったものとして入力ストリームに残ります**。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
つまり書式中に '/' を書いてないのでデータ中の '/'は読み飛ばされずに %d すなわち int に変換しようとする。ところが '/'はintに変換できずに scanfはそこで失敗とする。2つめ以降が読み取れない理由はコレ。
|