转出的结果只有第一位p而不是please,请大家帮忙看看。std:: fstream str;
str.open(path,ios::out);
char *ch1;
CString m_p="please";
ch1=new char[m_p.GetLength()+1];
sprintf(ch1, "%s",m_p);
str<<ch1<<endl;
delete[] ch1;
str.close();
str.open(path,ios::out);
char *ch1;
CString m_p="please";
ch1=new char[m_p.GetLength()+1];
sprintf(ch1, "%s",m_p);
str<<ch1<<endl;
delete[] ch1;
str.close();
解决方案 »
- DIALOG作为参数传递过程中,HWND丢失了。
- 关于GetBuffer和ReleaseBufer的用法
- 要下载网络文件,却得不到正确长度
- 怎么改变对话框的背景颜色亚
- SkinMagic ToolKit 1.8
- 如何察看一个exe文件运行过程中调用了哪些dll呢?有没有什么工具啊?
- 研究QQ的原理
- 如何操作大文件?
- 自己写的OCX里设了几个属性,外部设置它们,但总有一个属性不能用
- 请问如何在 VC 中实现编程调用 IE 的自动拨号窗口?
- VC7.1+ ADO+ ACCESS----在数据库中创建由索引和“备注”型字段组成的表时出错(出错提示“无效类型”)
- 怎样定义一个 map<CString,CStringList> 全局变量?
sprintf(ch1, "%S",m_p);
UNICODE工程应该编译不过的吧
LZ说只有第一位p而不是please,按照unicode的英文存储方式,英文占2个字节,第一个字节是和ansi一样的值,第二个字节是0,而sprintf这种字符串函数是以0判断字符串结束的,故我想应该是unicode工程的原因
但如果是UNICODE工程的话,sprintf(ch1, "%S",m_p);应该是sprintf(ch1, _T("%S"),m_p);或sprintf(ch1, L"%S",m_p);不然编译器应该会报错吧
不然UNICODE工程应该编译不过