[英]Assigning a 2 digit integer to a char variable
我從學校做一個簡單的分配,涉及將一個兩位整數(<100)分配給一個char變量。 我正在使用Xcode 9.2。 我應該能夠做到這一點,並且Xcode不會抱怨。 然而,當我嘗試cout
變量到控制台返回_
替代變量
這在普通command line tool
項目中的.cpp
文件中。
char desired_score;
desired_score = 95;
cout << "I will work hard to get a grade of " << desired_score << " in this course!\n";
此代碼產生:
I will work hard to get a grade of _ in this course!
如果我將值分配給一位數字,它的輸出就很好。 因此,我能夠編寫一個變通方法,在該方法中,我只需將變量值從'9'
重新分配為'5'
並使用兩個不同的cout
語句即可。
有人知道為什么會這樣嗎? 這是家庭作業的一部分,我的教科書說這應該可以在C ++中實現。 這是Xcode的特點嗎?
提前致謝。
將char
寫入流時,假定您希望寫入實際字符而不是其整數值。 要輸出整數,請改用它:
cout << "I will work hard to get a grade of "
<< static_cast<int>(desired_score)
<< " in this course!\n";
發生這種情況的原因是因為_(下划線)的ascii代碼為95。一個簡單的解決方法是使用字符串,int或short代替char。
編輯:它適用於單個數字,因為您使用字符文字,而不是因為字符也是c ++中的字節。 那是我的錯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.