2010-04-11 8 views
2

Quel est le problème avec les deux dernières instructions dans le code?erreur avec io flux

#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; 

Que dois-je faire pour résoudre ce problème?

Répondre

9

Quel est le problème avec les deux dernières déclarations contenues dans le code?

Priorité d'opérateur. | et & ont une priorité inférieure à <<, donc cout << "2 & 4 = " << 2 & 4 << endl; est analysé comme (cout << "2 & 4 = " << 2) & (4 << endl;).

Que dois-je faire pour résoudre ce problème?

Put parens autour 2 | 4 et 2 & 4.

3

Mettez l'expression entre parenthèses. L'opérateur << prend la priorité sur les opérateurs bit à bit.

#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; 
}