爲什麼在使用wchar_t時將數字作爲輸出結果?寬字符輸出結果
#include <iostream>
using namespace std;
int main()
{
wchar_t q;
q = 'A';
cout << q;
q = 'B';
cout << q;
q = 'C';
cout << q;
return 0;
}
爲什麼在使用wchar_t時將數字作爲輸出結果?寬字符輸出結果
#include <iostream>
using namespace std;
int main()
{
wchar_t q;
q = 'A';
cout << q;
q = 'B';
cout << q;
q = 'C';
cout << q;
return 0;
}
所顯示的 '數字' 是字符的值。這就是你獲得「數字」的原因。如果你想顯示的字符,你可以使用wcout
std::cout
是basic_iostream<char>
。對於wchar_t
,basic_iostream<char>
沒有operator<<
過載。當輸出wchar_t
對象時,必須將它們轉換爲某種類型,並且該對象存在operator<<
過載。選定的轉換是除char
以外的整數類型,因此顯示的是整數值而不是所表示的字符。
使用'std :: wcout'和寬字面值。 – chris
用wcout << q;我確實得到了ABC結果 – user1888353
我並不是100%確定規則是什麼,但是'wchar_t'可以像一個整數或其他東西一樣對待,所以這就是爲什麼你得到數字 - 因爲'wchar_t'沒有'operator <<'與'std :: ostream',所以它轉換爲一個整數,並使用該重載。 – chris