不能将中文写入日志文件中?

亚细亚 2012-09-14 02:46:25
下面程序调用writeLogInfo(),如果参数传入是英文,那么文本文件中可以写入传入的字符串,如果参数传入中文,那么就没有写入文件,为什么传入中文不能写入到文件中?
vc6

#include "winsock2.h"
#include <windows.h>
#include "time.h"
#include <stdio.h>
wchar_t *logFile=L"log.txt";
WriteLogFile(wchar_t* fileName,wchar_t *content);
void writeLogInfo(wchar_t *info);

int main(int argc,char *argv[])
{
writeLogInfo(L"hellp");
}

WriteLogFile(wchar_t* fileName,wchar_t *content)
{
FILE *fp;
if((fp=_wfopen(fileName,L"at+"))!=NULL)
{
fputws(content,fp);
fputwc('\r',fp);
fputwc('\n',fp);
}
fclose(fp);
}

void writeLogInfo(wchar_t *info)
{
wchar_t writeInfo[2000]={0};
swprintf(writeInfo,L"%s",info);
WriteLogFile(logFile,writeInfo);
}
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
亚细亚 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

setlocale(LC_ALL,"chs");
if ((fp=_wfopen(fileName,L"at+,ccs=UTF-8"))!=NULL)
[/Quote]
引入
#include <locale.h>后OK!
谢谢!
亚细亚 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

setlocale(LC_ALL,"chs");
if ((fp=_wfopen(fileName,L"at+,ccs=UTF-8"))!=NULL)
[/Quote]
我用的是纯C,setlocale好像是c++中的函数;
赵4老师 2012-09-14
  • 打赏
  • 举报
回复
setlocale(LC_ALL,"chs");
if ((fp=_wfopen(fileName,L"at+,ccs=UTF-8"))!=NULL)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧