error with io stream
What is the problem with the last two statements in the code?
#include <iostream>
using namespace std;
int main()
{
cout << "2 + 4 = " << 2 + 4 << endl;
cout << "2 * 4 = " << 2 * 4 << endl;
cout << "2 | 4 = " << 2 | 4 <<开发者_如何学JAVA; endl;
cout << "2 & 4 = " << 2 & 4 << endl;
What should I do to fix this?
What is the problem with the last two statements in the code?
Operator precedence. |
and &
have lower precedence than <<
, so cout << "2 & 4 = " << 2 & 4 << endl;
gets parsed as (cout << "2 & 4 = " << 2) & (4 << endl;)
.
What should I do to fix this?
Put parens around 2 | 4
and 2 & 4
.
Put the expression in parentheses. The <<
operator is taking precedence over the bitwise operators.
#include <iostream>
using namespace std;
int main()
{
cout << "2 + 4 = " << 2 + 4 << endl;
cout << "2 * 4 = " << 2 * 4 << endl;
cout << "2 | 4 = " << (2 | 4) << endl;
cout << "2 & 4 = " << (2 & 4) << endl;
return 0;
}
精彩评论