• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            力為的技術(shù)博客

            聯(lián)系 聚合 管理
              154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

            ?

            問題:
            有時候用ifstream或ofstream打開帶有中文路徑的文件會失敗。

            解決辦法:
            1、使用C語言的函數(shù)設(shè)置為中文運行環(huán)境
            setlocale(LC_ALL,"Chinese-simplified");

            2、使用STL函數(shù)設(shè)置為系統(tǒng)語言環(huán)境
            std::locale::global(std::locale(""));

            當(dāng)然選2啦!

            posted on 2006-06-09 22:01 力為 閱讀(13584) 評論(13)  編輯 收藏 引用 所屬分類: 4. C++ FAQ5. GP&STL&BOOST

            評論

            # re: fstream 和 中文路徑 2006-06-09 22:21 LOGOS
            聽君一席話,勝讀十年書。
            以前用VS2003的時候,用fstream類一直可以很好支持中文文件名的,后來換了VS2005之后,建立中文文件名的文件,文件名字卻一直是亂碼(wfstream不在此例),內(nèi)心十分疑惑。
            看了你的貼,做了一下測試,所有問題都OK了。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-06-09 23:25 LOGOS
            做了更多的測試之后,發(fā)現(xiàn)ios::imbue方法失效了,要改變語言類別,只能通過locale::global實現(xiàn)。
            但是問題卻來了,設(shè)置global為中文后,cout卻喪失了輸出中文的能力。。。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-06-10 11:13 力為
            VC6可以正常輸出,
            在VC2005下cout不能正常輸出,但ofstream可以正常輸出。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-07-29 23:02 smilerain
            就是這個麻煩的問題
            fstream能找到中文路徑了
            cout確不能輸出中文了.  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-08-27 20:38 wuqiu
            std::locale::global(std::locale(""));
            // open file
            std::locale::global(std::locale(0));
              回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-11-08 18:58 Taorama
            升級到VS2005,發(fā)現(xiàn)很多東西不能用了。跟蹤半天,發(fā)現(xiàn)是fstream搞得鬼。試了很多辦法都無效。
            老大提供的方法不錯,馬上就搞定了。STL學(xué)的不好,老大是能解釋一下嗎。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-11-08 20:10 Taorama
            “1、使用C語言的函數(shù)設(shè)置為中文運行環(huán)境
            setlocale(LC_ALL,"Chinese-simplified");”

            這句話應(yīng)該改為
            setlocale(LC_ALL,"");
            才對。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2006-11-14 12:02 doermlp
            請教樓主,用了上面的方法2之后的確能解決中文路徑問題,但是向文件中寫入整型或浮點型數(shù)據(jù)時有問題,比如“1000”,輸出之后就成了“1,000”,這個問題能解決嗎?謝謝。  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2007-07-04 02:19 天津大學(xué)計算機(jī)學(xué)院 常興龍
            很不錯!  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2007-08-23 11:37 小胡
            比如“1000”,輸出之后就成了“1,000”,這個問題我也遇到了,文件名也會這樣  回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2007-08-23 11:38 小胡
            @小胡
            有解決的辦法碼
              回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2007-09-15 02:05 lax
            @小胡
            設(shè)置輸出流的local為"C"即可,利用imbue()方法。
            若輸出流對象為a,則
            a.imbue(std::locale("C"));
            這樣就不會出現(xiàn)1,000的現(xiàn)象。
              回復(fù)  更多評論
              

            # re: fstream 和 中文路徑 2008-01-02 19:14 進(jìn)而人員
            謝謝!  回復(fù)  更多評論
              

            久久天天躁狠狠躁夜夜2020 | 日本免费一区二区久久人人澡| 色综合久久88色综合天天 | 99久久精品九九亚洲精品| 久久久久亚洲AV无码永不| 久久综合给合久久狠狠狠97色| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 精品久久久久久无码专区| 亚洲∧v久久久无码精品| 精品久久久久久无码中文字幕一区| 久久久久久久久无码精品亚洲日韩 | 一本久久a久久精品亚洲| 久久亚洲中文字幕精品有坂深雪 | 久久久久国产一区二区| 亚洲国产成人精品女人久久久 | 久久福利青草精品资源站免费| 精品国产福利久久久| 久久激情亚洲精品无码?V| 精品久久久久成人码免费动漫| 久久强奷乱码老熟女网站| 男女久久久国产一区二区三区| 久久精品一本到99热免费| 97久久精品人人做人人爽| 区亚洲欧美一级久久精品亚洲精品成人网久久久久| 国产精品青草久久久久福利99 | 久久成人国产精品一区二区| 国产午夜精品理论片久久| 要久久爱在线免费观看| 久久久久久九九99精品| 国产精品美女久久久免费| 亚洲午夜无码久久久久| 亚洲国产天堂久久综合网站| 久久午夜免费视频| 老司机国内精品久久久久| 亚洲欧美成人久久综合中文网| 欧美牲交A欧牲交aⅴ久久| 日日狠狠久久偷偷色综合96蜜桃| 久久偷看各类wc女厕嘘嘘| 亚洲国产天堂久久综合| 99久久99这里只有免费的精品| 无码人妻少妇久久中文字幕 |