自己在维护项目的时候所遇到的问题,现在将自己的经验写下来和大家分享:
这是我一开始想将str以ASCII码的形式保存成文件方便查看,下面是我使用的代码:
FILE *pt = NULL;
CString str;
str.Format(_T("http://www.baidu.com"));
pt = fopen("D:\\pagedownload", "a");
fprintf(pt, "%s", str.GetBuffer(str.GetLength()));
fprintf(pt, "\n---------------\n");
ret.ReleaseBuffer();
fclose(pt);
但是这样的代码所写入文件后的内容是这样的:
结果是错误的,文件并没有保存我想要的内容。
查资料之后我明白了CString和char 的区别,工程的CString涉及Unicode编码,将CString转换成Char ,就可以将字符串正确的写入文件了
于是将代码改写成如下所示:
FILE *pt = NULL;
CString str;
char buffer[30] = {'\0'};
str.Format(_T("http://www.baidu.com"));
WideCharToMultiByte(CP_ACP, 0, str.GetBuffer(0), str.GetLength(), buffer, 30, 0, 0);
pt = fopen("D:\\pagedownload", "a");
fprintf(pt, "%s", buffer);
fprintf(pt, "\n---------------\n");
str.ReleaseBuffer();
fclose(pt);
结果是这样:
这样的结果是我想要的。