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 = '\' 时,我得到 orientVal [i] = 1 而不是 2。我该如何解决这个问题?谢谢。

4

3 回答 3

4

赋值完成=且等于==

所以声明

if (orient = '/')

应该

if (orient == '/')

无论orient包含什么,第一个语句总是评估为真。因为在 C/C++ 中,非零值是 True。您的作业使声明简单地为

if ('/')

这不过是

if (true)
于 2013-01-13T04:40:55.783 回答
3

因为if (orient = '/')是一个总是作为布尔值(非零)计算为真的赋值。

你想要if (orient == '/')

于 2013-01-13T04:39:56.070 回答
0

线

if(orient = '/'

应该

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