這是我的C++作業,請幫助我。在輸出(我已經用Google搜索了一下,發現沒有)C++在輸出中顯示'123',3224115(使用cout)
int main()
{
std::cout<<'123';
getchar();
return 0;
}
你會得到3224115. 爲什麼呢?
這是我的C++作業,請幫助我。在輸出(我已經用Google搜索了一下,發現沒有)C++在輸出中顯示'123',3224115(使用cout)
int main()
{
std::cout<<'123';
getchar();
return 0;
}
你會得到3224115. 爲什麼呢?
寫代替
std::cout << "123";
^^
'123'
是字符文字具有實現定義的值,並輸入int
。
它可以是想象例如下列方式
#include <iostream>
int main()
{
int x = 0x313233;
std::cout << x << std::endl;
return 0;
}
其中0x31
,0x32
,0x33
是字符'1'
,'2'
ASCII碼,'3'
相應。
對於這個程序的輸出可以是
3224115
我不能改變單引號,我必須找出 –
@PaladinVahid由於我寫了多字節字符文字,它的類型是int,它的值是實現定義的 –
我想你錯過了解這個問題,問題是爲什麼我們得到的那個數字不是什麼問題代碼 –
引述C standard(第61)
包含多於一個 字符的整數字符常數的值(例如,
'ab'
),或者包含字符或轉義序列 ,它不映射到單字節執行字符,是 實現定義的。
我想你錯過了解這個問題。問題是爲什麼我們得到這個數字,而不是代碼有什麼問題。 –
我需要知道爲什麼'123'通過編譯器顯示3224115。 –
編輯以顯示單引號不起作用的原因 – stackptr
您正在使用錯誤的引號。 '是單個字符而不是字符串。使用雙引號「作爲字符串std :: cout <<」123「;' – drescherjm
我知道,問題在於我寫的是什麼 –
查看3224115的十六進制表示。然後在ASCII表中查找十六進制 – molbdnilo