2014-10-10 2 views
-1
int main(){ 

    int x; 
    cout<<"enter a number: "; 
    cin>>x; 
    cout<<endl; 
    odd(x); 


    return 0; 
} 

void odd(int a){ 

if(a%2 != 0){ 

    cout<<"the number is odd : "<< '(' +a+ ')'; 

    }else{ 

    even(a); 

    } 
} 

я выполнил вышеуказанную программу и я получаю другой вывод:Почему я получаю разные выходные данные в C++?

enter a number: 15 

the number is odd : 96 

Почему это происходит?

Благодаря

+1

C++ не имеет конкатенации строк, и он * определенно * не имеет преобразования числа в строку, как и другие языки. Ответ @ MikolajMularczyk верен. – Qix

ответ

12

Попробуйте это: cout<<"the number is odd : "<< '('<< a << ')';

"(" и ")" в ASCII имеет значение 40 и 41. Они продвинут на Int и добавить их, поэтому ваш выход 96 (40 + 15 + 41 == 96).

+0

Это очищает мои сомнения. Спасибо @MikolajMularczyk. – hamid

Смежные вопросы