vc运行结果多了一些中文乱码是什么原因导致的?
3个回答
展开全部
字符串要有空终止字符,编码就是0,例子:
char ch[6]="Hello";
ch[5]=0;
cout<<ch<<endl;
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);
}
这程序在别人电脑上运行的还是好好的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char c[10]="hello\0";
类似上面这样写,字符串后面加\0
类似上面这样写,字符串后面加\0
更多追问追答
追问
hello是读的2.txt文件里的,应该跟“\0”没有关系吧
追答
你读取的文件内容小于你的存放内容的缓冲区大小,而缓冲区又没有清0,所以就出现乱码了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询