0

以下はC++コードです。

#include <iostream>
using namespace std;
int main()
{
char ch;
int ct1, ct2;
ct1 = ct2 = 0;
while ((ch = cin.get()) != '$')
{
    cout << ch;
    ct1++;
    if (ch = '$')
        ct2++;
    cout << ch;
}
cout << "ct1 = " << ct1 << ", ct2 = " << ct2 << "\n";
system("pause");
return 0;
}

これで、入力するとどうなるかがわかります。

  hi$<ENTER>

出力はこのようになるはずです。

hi ct1 = 2, ct2 = 0

しかし、実際の出力はこれです。

h$i$ct1 = 2, ct2 = 2.

なぜ私が理解できないと出力されるのですか、どうすれば修正できますか。

Windowsデスクトップ用のVisual Studio Express 2013プレビューを使用しています。

4

4 に答える 4