_CLOCALEHANDLE,浜庢槸涓枃瀛楃寰堟偛鍓х殑琚漿鎹㈡垚浜?/span>鑾悕鍏跺鐨勪竴涓蹭笢瑗褲俫oogle浜嗕笅錛屼技涔庡緢澶氫漢紕板埌浜嗚繖涓棶棰橈紝涔熸病鏈夌壒鍒ソ鐨勮В鍐蟲柟妗堬紝瑕佷笉鐩存帴unicode,瑕佷笉姣忔璋冪敤fstream鍓嶅悗閮借皟鐢ㄤ竴閬峴etlocal錛屽浠g爜鐨勪鏡鍏ユч兘寰堝己銆?br> 鎴戝仛浜嗕釜灝佽鐨勮В鍐蟲柟妗堬紝浣跨敤涓ā鏉跨被瀵筬stream鍋氫竴涓獁rapper錛屼唬鐮佸涓?
template<class T>
struct fstream_fix
:public T
{
fstream_fix(){};
template<class T1>
fstream_fix(T1 v1){
setlocale(LC_CTYPE, ".936");
T::open(v1);
setlocale(LC_CTYPE, 0);
}
template<class T1,class T2>
fstream_fix(T1 v1,T2 v2){
setlocale(LC_CTYPE, ".936");
T::open(v1,v2);
setlocale(LC_CTYPE, 0);
}
template<class T1>
void open(T1 v1){
setlocale(LC_CTYPE, ".936");
T::open(v1);
setlocale(LC_CTYPE, 0);
}
template<class T1,class T2>
void open(T1 v1,T2 v2){
setlocale(LC_CTYPE, ".936");
T::open(v1,v2);
setlocale(LC_CTYPE, 0);
}
};
#define ifstream fstream_fix<ifstream>
#define ofstream fstream_fix<ofstream>
OK.瀹岀編錛屽鍘熼」鐩病鏈変換浣曞獎鍝嶏紝ifstream fi(filepath);filepath涓惈鏈変腑鏂囦篃鑳芥甯稿伐浣滀簡銆?) 褰撶劧瑕佹敞鎰忕殑鏄紝鍦ㄥ畯瀹氫箟涔嬪悗錛屽氨涓嶈兘鍐峣nclude <fstream>錛屼笉鐒跺彲鑳戒細鏈夌紪璇戦敊璇?br>

]]>