1

私のC++コードでは、文字通り\および/文字を読み取ろうとしていますが、\は/と同じように読み取られます。

私のコードはこれです:

int x, y;
char orient;
cin >> N >> goalA >> goalB;
for (int i = 0; i < N; i++)
{
    cin >> x >> y >> orient;
    xVal [i] = x;
    yVal [i] = y;
    if (orient = '/')
    {
        orientVal [i] = 1;
    }
    else
    {
        orientVal [i] = 2;
    }
    cout << orientVal[i];
}

しかし、orient ='\'の場合でも、2ではなくorientVal [i] = 1になります。これを修正するにはどうすればよいですか?ありがとう。

4

3 に答える 3

4

代入は で行われ、 は=と等しい==

だから声明は

if (orient = '/')

する必要があります

if (orient == '/')

最初のステートメントは、何orientが含まれているかに関係なく、常に true と評価されます。C/C++ ではゼロ以外の値が True であるためです。あなたの割り当ては、単に次のように宣言します

if ('/')

それはただの

if (true)
于 2013-01-13T04:40:55.783 に答える
3

if (orient = '/')ブール値 (ゼロ以外) として常に true と評価される代入であるためです。

あなたがしたいif (orient == '/')

于 2013-01-13T04:39:56.070 に答える
0

ライン

if(orient = '/'

する必要があります

if ('/' == orient) ...
于 2013-01-13T04:38:20.847 に答える