vc运行结果多了一些中文乱码是什么原因导致的?

 我来答
Magic_旭
2013-05-17 · 超过41用户采纳过TA的回答
知道答主
回答量:287
采纳率:100%
帮助的人:120万
展开全部
字符串要有空终止字符,编码就是0,例子:
char ch[6]="Hello";
ch[5]=0;
cout<<ch<<endl;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-16
展开全部
buffer没有完整初始化,使用前先请memset(buf,0x00,len);
更多追问追答
追问
#include
#include
#include
#include
#include
main()
{
int fd,len;
void *tp;
struct stat ps;
fd=open("./2.txt",0);
fstat(fd,&ps);
len=ps.st_size;
tp=malloc(len);
read(fd,tp,len);
printf("%s\\n",tp);
close(fd);
}
这程序在别人电脑上运行的还是好好的
追答

代码没问题,用多少分配多少,是不用memset的。

那么脏数据就只能来自你的输入文本了,看:

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夕枫沉影
2013-05-16 · TA获得超过2930个赞
知道大有可为答主
回答量:2521
采纳率:0%
帮助的人:1137万
展开全部
char c[10]="hello\0";
类似上面这样写,字符串后面加\0
更多追问追答
追问
hello是读的2.txt文件里的,应该跟“\0”没有关系吧
追答
你读取的文件内容小于你的存放内容的缓冲区大小,而缓冲区又没有清0,所以就出现乱码了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式