if (ch1 = 'l' || 'L')
cout << left;
else if (ch1 = 'r' || 'R')
cout << right;
else
cout << "error" << endl;
cout << setw(++aw) << setfill(char(a)) << s1 << endl;
if (ch2 = 'l' || 'L')
cout << left;
else if (ch2 = 'r' || 'R')
cout << right;
else
cout << "error" << endl;
cout << setw(++bw) << setfill(char(b)) << s2 << endl;
if (ch3 = 'l' || 'L')
cout << left;
else if (ch3 = 'r' || 'R')
cout << right;
else
cout << "error" << endl;
cout << setw(++cw) << setfill(char(c)) << s3 << endl;
return 0;
}
我不确定为什么,但是所有3条输出线都是左对齐的。对我来说这似乎是合法的,如果在某处出现逻辑错误,或者我只是输错了
,我就不肯定。答案 0 :(得分:1)
比较应该是
if (ch1 == 'l' || ch1 == 'L')
ch1 = left;
else if(ch1 == 'r' || ch1 == 'R')
ch1 = right;
else
cout << "error" << endl;
'l','r','R','L'应该是字符文字,除非你有变量l,r,L,R并且分配了适当的字符。
答案 1 :(得分:0)
当你写作时。
if (ch1 = 'l' || 'L')
这总是正确的,因为你实际上在说
assign 'l' to ch1 (whose result is always is != 0)
OR
if 'L' is not equal to zero (which always is !=0)
相反,正确的写方式是使用双=
if ( ch1 == 'l' || ch1 == 'L')
或
if ( toupper( ch1 ) == 'L' )