菜单中 一个写入,一个读取,并将读取内容弹出,发现是乱码,怎么样解

C++语言 码拜 8年前 (2017-05-04) 1081次浏览
void CChildView::OnWrite()
{
	// TODO: 在此添加命令处理程序代码
	//const char *filename ="";
	FILE *pfile = fopen("1.txt","w");
	if (pfile)
	{
		fwrite("myname is hzz",1,sizeof("myname is hzz"),pfile);
		fseek(pfile,0,SEEK_SET);
		fwrite("努力学习吧少年",1,sizeof("努力学习吧少年"),pfile);//此时文件中只有汉字了
		fclose(pfile);
	}
}
void CChildView::OnRead()
{
	//setlocale( LC_CTYPE,"chs"); 
	setlocale(LC_CTYPE,"chs");
	// TODO: 在此添加命令处理程序代码
	wchar_t buff[100] ={0};
	FILE *pfile = fopen("1.txt","r++");
	if (pfile)
	{
		fread(buff,1,50,pfile);
		MessageBox(buff);
	}
}

写入之后读取,发现是乱码

解决方案

80

引用:

本人用的是Unicode,本人是想除了改项目属性的办法外,改传入的指针成宽字符能否可以,改成宽字符后可以编译过,但是是乱码

你想用什么本人不管,但fwrite(“努力学习吧少年”,1,sizeof(“努力学习吧少年”),pfile); 这里写入的不是宽字符,你读到宽字符自然是乱码


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明菜单中 一个写入,一个读取,并将读取内容弹出,发现是乱码,怎么样解
喜欢 (0)
[1034331897@qq.com]
分享 (0)