1樓:匿名使用者
因為你沒有進行字元的轉換,我們需要將buf進行轉換。這就要用到了widechartomultibyte.如何用呢?
首先我的方法比較笨,可以這麼用的:
char* pchbuffer = new char[dwlen+1];
widechartomultibyte(cp_acp, null, pbuffer, -1, pchbuffer, dwlen+1, null, false );
delete pchbuffer;
此時注意,我在writefile中用了dwlen+1。結果就是在檔案的末尾出現了亂碼,正好多一個亂碼出來。所以writefile中nnumberofbytestowrite是寫的字串的數目,是不包括』\0』的。
此時注意,我在writefile中用了dwlen+1。結果就是在檔案的末尾出現了亂碼,正好多一個亂碼出來。所以writefile中nnumberofbytestowrite是寫的字串的數目,是不包括』\0』的。
這個方法笨,是因為我們的函式可以縮減為兩個引數。是因為如下這麼寫時,dwlen是所要轉換的字串的個數,此時轉換的字串是包括』\0』的。
dword dwlen = widechartomultibyte(cp_acp, null, pbuffer, -1, null, null, null, false );
2樓:南大梧桐
最近在使用writefile函式時發現,vc2008中unicode字符集下處理中文亂碼的一些解決方法,歸納如下
1. 寫入的時候採用多位元組char型別
handle hfile;
dword nbytes;
hfile=createfile(_t("test.txt"),generic_write,file_share_write,null,create_always,0,null);
char msg="我是我的我";
if(hfile!=invalid_handle_value)
2. 直接寫入unicode的頭位元組
handle hfile;
dword nbytes;
hfile=createfile(_t("test.out"),generic_write,file_share_write,null,create_always,0,null);
wchar msg=l"我是我的我";
if(hfile!=invalid_handle_value)
3. 使用widechartomultibyte轉換成多位元組
(省略)
4. 使用wcstombs轉換成多位元組,需要引用wchar.h和locale.h
handle hfile;
dword nbytes;
hfile=createfile(_t("test.out"),generic_write,file_share_write,null,create_always,0,null);
wchar msg=l"我是我的我";
if(hfile!=invalid_handle_value)
//*********以下為讀入***********************//
hfile=createfile(_t("test.txt"),generic_read,file_share_read,null,open_always,0,null);
if(hfile!=invalid_handle_value)
;bool bresult;
if(nbytes!=0)
closehandle(hfile);}
3樓:匿名使用者
用#include 不是更好嗎?
file * f = fopen(("\\my documents\\one.txt", "w");
fpritnf(f, "張三李四");
fclose(f);
就可以了,多簡單啊!
4樓:匿名使用者
你的 buf是一個字串指標
直接寫入肯定是亂碼
換char型陣列 就ok
求日語翻譯100分
窗邊優和窗邊愛的同時音效資料夾裡的全都是擬聲詞 那些片假名的 我就不煩了,因為具體不知道是什麼時候發出的。窗邊優單獨音效裡的擬聲詞我也不翻了,就把語句翻出來吧im 這是im喲 見 啊,找到了 啊,您回來了 少 唉?電池要沒電了 哎呀,發生系統錯誤了 哎呀呀?哎呀!慌張 嗚呼呼 辛苦您了,晚安 唉?這...
100分求日版NDSI的WIFI設定
馬里奧賽車?基本上是wep密碼錯誤 不加密不行 我也試過 不知道為什麼 你用密碼生成器生密碼 一般可以生4組 8組的 選一組設定到路由 然後把這一組也打到ds裡去 ip三行分別是 本機ip 掩碼 閘道器 如果是最經典常見的192.168.1.xx 那就把路由器的dhcp開啟 ds上全部自動就可以了 ...
急求結婚吉日 100分懸賞
男 1982年農曆9月16日生 女 1982年農曆9月25日生 訂於2009年陽曆2月14日 情人節 農曆1月20日,吉嗎?2009年2月份恭候您二位結婚的黃道吉日是 避開您二位生肖的衝日後可任選 2009年02月03日 星期二 一月初九 衝雞 2009年02月06日 星期五 一月12日 衝鼠 20...