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

回答編集履歴

2

全体動作再確認、追求

2021/04/14 06:05

投稿

ttb
ttb

スコア78

answer CHANGED
@@ -1,14 +1,11 @@
1
- すみませんstring型なのを見落としてました。
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
- すみせん実機で動作確認していませんが、コードみ感じyを文字列として扱っていないでしょう
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

コード読みミスのお詫び

2021/04/14 06:05

投稿

ttb
ttb

スコア78

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 が格納された領域へのポインタ)