回答編集履歴
2
全体動作再確認、追求
answer
CHANGED
@@ -1,14 +1,11 @@
|
|
1
|
-
|
1
|
+
再度、確認してみました。
|
2
|
-
==演算子で、""の文字列と比較できるようですね。
|
3
|
-
回答削除できないようですので、以下忘れてください・・・。
|
4
2
|
|
3
|
+
質問主さんのコードは、動きとしては、
|
4
|
+
数字→y→数字→y→…→数字→y以外→終了 (想定した動き)
|
5
|
+
数字以外→0を吐いて終了 (想定しない動き)
|
6
|
+
数字→y→数字以外→0を無限ループ (想定しない動き)
|
5
|
-
|
7
|
+
となりました。
|
6
|
-
|
8
|
+
ということで、上記を念頭に置いて、別途試したところ、
|
9
|
+
int の変数に対して、文字や文字列を与えるとおかしくなるようです。
|
10
|
+
(それ以降、cinが入力待ちで止まらなくなり、変数には強制的に0が入る。)
|
7
|
-
|
11
|
+
(また、適切に改行されていないため、Enter押しても改行しない事があり勘違いの元なのかもしれません。)
|
8
|
-
|
9
|
-
"y"は、文字列なので y の次に ¥0 が入ったconst char型配列への先頭ポインタ(10進数で 1バイト目 121 の次の1バイトに 0 が格納された領域へのポインタ)
|
10
|
-
'y'は、1文字なのでそのまま、10進数で書くと 121
|
11
|
-
になるかと思います。
|
12
|
-
|
13
|
-
str == 'y'
|
14
|
-
にすると、うまく行かないでしょうか?
|
1
コード読みミスのお詫び
answer
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
すみません、string型なのを見落としていました。
|
2
|
+
==演算子で、""の文字列と比較できるようですね。
|
3
|
+
回答削除できないようですので、以下忘れてください・・・。
|
4
|
+
|
5
|
+
------
|
6
|
+
|
1
7
|
すみません、実機で動作確認していませんが、コードみた感じyを文字列として扱っていないでしょうか?
|
2
8
|
|
3
9
|
"y"は、文字列なので y の次に ¥0 が入ったconst char型配列への先頭ポインタ(10進数で 1バイト目 121 の次の1バイトに 0 が格納された領域へのポインタ)
|