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(""));
} 展开
{
// 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(""));
} 展开
1个回答
展开全部
目测,应该是编码问题,检查一下工程是否是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();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询