用了delete []pBuf; 但是编译后还有乱码!

chenhu_doc 2005-09-25 10:03:17
//没有注释,请见谅!

#include <iostream.h>
#include <strstrea.h>
char * parseString(char *pString)
{
istrstream inp(pString,0);
int aNumber;
float balance;
inp>>aNumber>>balance;
char * pBuffer=new char[128];
ostrstream outp(pBuffer,128);
outp<<"aNumber="<<aNumber
<<",balance="<<balance<<endl;
return pBuffer;
}
void main()
{
char *str="1234 100.35";
char *pBuf=parseString(str);
cout<<pBuf<<endl;
delete []pBuf;
}
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunbinkeke 2006-05-03
  • 打赏
  • 举报
回复
能不能再深一点解释为什么不加‘0’就会有乱码,c++是怎么编译这个语句的
chenhu_doc 2005-09-25
  • 打赏
  • 举报
回复
赫赫
sankt 2005-09-25
  • 打赏
  • 举报
回复
up
chenhu_doc 2005-09-25
  • 打赏
  • 举报
回复
o 原来如彼!!
谢了!!
llf_hust 2005-09-25
  • 打赏
  • 举报
回复
因为字符串要以\0'结尾,没有就会出现乱码。很明显你的pBuf因为没有'\0'才会出现乱码的呀,所以我就给它加了一个
chenhu_doc 2005-09-25
  • 打赏
  • 举报
回复
to llf_hust() ( )
给一个解释萨 为什么一个'\0'就解决问题了呢??
llf_hust 2005-09-25
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <strstrea.h>
char * parseString(char *pString)
{
istrstream inp(pString,0);
int aNumber;
float balance;
inp>>aNumber>>balance;
char * pBuffer=new char[128];

ostrstream outp(pBuffer,128);

outp<<"aNumber="<<aNumber
<<",balance="<<balance<<'\0'<<endl;
return pBuffer;
}
int main()
{
char *str="1234 100.35";
char *pBuf=parseString(str);
cout<<pBuf<<endl;
delete []pBuf;
return 0;
}

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧