簡體   English   中英

為char變量分配2位整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM