關於fwprintf(fp,L"%s\n",str_chs)的UNICODE問題。

在windows系統下將一個含有中文的字符串緩存寫入指定路徑下的文本文件中,假如採用_wfopen(),fwprintf()方式寫入,務必在調用fwprintf()以前加上_wsetlocale(0, L"chs");這句,不然系統不支持,寫出來的文本文件會是亂碼或者問號字串。windows

示例代碼以下:緩存

FILE* fp = _wfopen(L"Data.txt",L"a+");
if(fp == NULL)
{
    return false;
}
_wsetlocale(0,L"chs");//務必加上不然生成的文本是問號字符串
fwprintf(fp,L"%s\n",L"中文字符串寫入文本");
fclose(fp);

char strline[1024] = {0};
fscanf(fp, "%[^\n]%*c", strline);//fscanf跨過空格讀取整行的代碼。格式化中使用了正則匹配
相關文章
相關標籤/搜索