考慮下面的程序:爲什麼這個C++程序給出錯誤的輸出?
#include <iostream>
int main()
{
std::cout<<std::ios::showbase<<123<<", "<<std::hex<<123<<", "<<std::oct<<123<<'\n';
}
預期輸出:123,0x7b,0173
捕捉到的輸出:512123,7B,173(見現場演示這裏:http://ideone.com/Khzj5j)
但是如果我修改以上程序如下:
#include <iostream>
using namespace std;
int main()
{
cout<<showbase<<123<<", "<<hex<<123<<", "<<oct<<123<<'\n';
}
現在我得到了期望的輸出。 (請參閱現場演示http://ideone.com/gcuHbm)。
爲什麼第一個程序給出了錯誤的輸出,但第二個程序沒有?第一個程序出了什麼問題?
您使用std :: ios :: showbase的第一個程序,第二個使用std :: showbase的程序。 –
如果要使用I/O操作功能,則應包含標題。 –
jaggedSpire
@Downvoters:指定降價的理由。 – Destructor