C语言运行的结果后面为什么出现乱码

如题所述

每个正常的字符串的结尾都有一个\0, 而你在循环最后只判断是不是回车, 是回车只是结束输入, 并没有把回车变成\0, 或在回车后面加上一个\0, 这样你的while就无法判断*fp是不是字符串结尾.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-30
因为最后的结束没有'\0',只有‘\n’, 你可以修改while(*fp != '\n'),或者自己在后面添加一个结束标志
第2个回答  2015-04-30
在fp = str;前加一句
str[i] = '\0';
相似回答