MFC里使用fprintf的问题

voidCaddDlg::OnBnClickedOk(){//TODO:在此添加控件通知处理程序代码//此段程序,就是将六个编辑框关联的变量写入文件中。但是使用之后,汉字... void CaddDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//此段程序,就是将六个编辑框关联的变量写入文件中。但是使用之后,汉字出现乱码,数字只能显示一个。
//N为全局变量
FILE *fp1;
fp1 =fopen ("d:\\txl.txt", "w");
UpdateData();
char *s1 = (LPSTR)(LPCTSTR)Sex;
char *s2 = (LPSTR)(LPCTSTR)Name;
char *s3 = (LPSTR)(LPCTSTR)Num;
char *s4 = (LPSTR)(LPCTSTR)QQ;
char *s5 = (LPSTR)(LPCTSTR)Phone;
char *s6 = (LPSTR)(LPCTSTR)Adress;
N++;
fprintf(fp1, "%d\n", N);
fprintf(fp1, "%s,%s,%s,%s,%s,%s\n", s1, s2, s3, s4, s5, s6);
fclose(fp1);
UpdateData(FALSE);
GetDlgItem(IDC_EDIT1)->SetWindowText(_T(""));
GetDlgItem(IDC_EDIT2)->SetWindowText(_T(""));
GetDlgItem(IDC_EDIT3)->SetWindowText(_T(""));
GetDlgItem(IDC_EDIT4)->SetWindowText(_T(""));
GetDlgItem(IDC_EDIT5)->SetWindowText(_T(""));
GetDlgItem(IDC_EDIT6)->SetWindowText(_T(""));
}
展开
 我来答
bhtzu
推荐于2016-04-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4242万
展开全部

目测,应该是编码问题,检查一下工程是否是UNICODE模式。

在MFC框架下,推荐使用CString和CFile处理字符串和文件,这样不涉及编码转换问题,处理方便,不容易出错。

例:

CFile f;
f.Open(_T("d:\\txl.txt"),CFile::modeReadWrite);
CString wstr;
wstr.Format(_T("%d\n%s, %s"),N,Sex,Name);
f.Write(wstr,wstr.GetLength()*sizeof(TCHAR));
f.Close();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式