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