目录
一、起因
由上图那一行显眼的乱码引起的,看着实在时太丑了——既然太丑了那就把它去掉吧。起初不知道这是因为什么原因引起的,百思不得其解。后来在指导老师的指导下瞬间就明白了,下面则是我的一些总结。
二、为什么会出现这种现象
C语言字符串以' \0 ' 结尾,如果不以该符号结尾则会输出 %s 时会出错,程序一直往存放字符串的地址访问,而你的程序中并没有赋' \0 ' 给那个数组。所以编译时就会出现乱码现象,如上图所示。
三、如何解决问题
使用数组应当初始化,可以使用memset将数组里的每一个元素初始化为0,如下所示:
char buf[1024];
memset(buf, 0, sizeof(buf));