在我的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。如何解决这个问题?谢谢。

最佳答案

=完成分配,用==完成相等

所以说

if (orient = '/')

应该
if (orient == '/')

无论orient包含什么内容,第一条语句始终计算为true。因为在C / C++中,非零值是True。您的作业使陈述简单
if ('/')

这不过是什么
if (true)

关于c++ - 用C++逐字读取反斜杠字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14300697/

10-10 17:53