在c ++中逐字读取反斜杠字符

时间:2013-01-13 04:35:51

标签: c++ backslash

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

3 个答案:

答案 0 :(得分:4)

使用=完成作业,与==

相等

所以声明

if (orient = '/')

应该是

if (orient == '/')

无论orient包含什么,第一个语句的计算结果始终为true。因为在C / C ++中,非零值为True。您的作业使声明简单为

if ('/')

这只是

if (true)

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

if(orient = '/'

应该是

if ('/' == orient) ...