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