vc 将cstring类型字符串写入指定的本地txt文件中,在文件中只显示字符串的第一个字符,不知道是什么问题

CString str((LPCTSTR)sz);

FILE *fp;
fp=fopen("Read.txt","w+");
if(fp==NULL) //如果失败了
{
printf("文件打开时发生错误!");
exit(1); //中止程序
}
MessageBox(str);
int num;
num=fprintf(fp,"%s",str);

if (num<0)
{
printf("文件写入失败!");
exit(1);
}
fclose(fp); //关闭文件
没用过vc 请大神帮帮忙

CString str((LPCTSTR)"你好啊");

FILE *fp;
fp=fopen("Read.txt","w+");
if(fp==NULL) //如果失败了
{
printf("文件打开时发生错误!");
exit(1); //中止程序
}
AfxMessageBox(str);
int num;
num=fprintf(fp,"%s",str);

if (num<0)
{
printf("文件写入失败!");
exit(1);
}
fclose(fp); //关闭文件
像你所写的代码,完全正确,也许是你的sz有问题,若要在Win32控制台上使用CString你要建立一个支持MFC的工程
还有
CString str; str = "你好啊";
也可以关于CString用法,百度很多,
其实你完全可以使用CFile(MFC的)
CFile file;
CString str = "你好啊";
if (TRUE == file.Open("Read.txt", CFile::modeReadWrite | CFile::modeCreate))
file.Write(str, str.GetLength() + 1); //GetLength()计算字符串大小,不包括\0, +1是为了写入NULL其实可以去掉
file.Close();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-20
unicode的问题 可能是追问

能说明白点吗 我不属性VC

追答

你用的vc6.0 还是vs2010?

相似回答