读书人

unsetf/setf的有关问题

发布时间: 2012-04-25 19:32:32 作者: rapoo

unsetf/setf的问题?

C/C++ code
#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){    int i = 10;    cout << i << endl; // 输出10    cout.setf( ios_base::hex, ios_base::dec );    cout << i << endl; // 问题一:为什么输出10,而不是a呢?    cout.unsetf( ios_base::dec );    cout.setf( ios_base::hex );    cout << i << endl; // 输出a    cout.setf( ios_base::dec );    cout << i << endl; // 输出10    cout.setf( ios_base::hex, ios_base::dec );    cout << i << endl; // 输出a    return 0;}


[解决办法]
C/C++ code
fmtflags setf(fmtflags fmtfl){    fmtflags old = m_flags;    m_flags |= fmtfl;    return old;}fmtflags setf(fmtflags fmtfl, fmtflags mask){    fmtflags old = m_flags;    m_flags &= ~mask;    m_flags |= (fmtfl & mask);    return old;} 

读书人网 >C++

热点推荐