_CLOCALEHANDLE,浜庢槸涓枃瀛楃寰堟?zhèn)插墽鐨勮铦{鎹㈡垚浜?/span>鑾悕鍏跺鐨勪竴涓蹭笢瑗褲俫oogle浜?jiǎn)涓嬪Q屼技涔庡緢澶氫漢紕板埌浜?jiǎn)杩欎釜闂锛屼篃娌℃湁鐗瑰埆濂界殑瑙e喯x柟妗堬紝瑕佷笉鐩存帴unicode,瑕佷笉姣忔璋冪敤fstream鍓嶅悗閮借皟鐢ㄤ竴閬峴etlocal錛屽浠g爜鐨勪鏡鍏ユч兘寰堝己銆?br> 鎴戝仛浜?jiǎn)涓獮畞瑁呯殑瑙e喯x柟妗堬紝浣跨敤涓ā鏉跨被瀵筬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.瀹岀編錛屽鍘熼」鐩病鏈変換浣曞獎(jiǎng)鍝嶏紝ifstream fi(filepath);filepath涓惈鏈変腑鏂囦篃鑳芥甯稿伐浣滀簡(jiǎn)銆?) 褰撶劧瑕佹敞鎰忕殑鏄紝鍦ㄥ畯瀹氫箟涔嬪悗錛屽氨涓嶈兘鍐峣nclude <fstream>錛屼笉鐒跺彲鑳戒細(xì)鏈夌紪璇戦敊璇?br>

]]>