结果只输出4个数字
将字符串改为6 结果还是不变
解决方案
10
第一个输入12345输出1234是原因是你定义的是一个字符型数组,在最后要加上一个字符串结束标记‘\0’,所以只读了1234并输出,你可以把fgets函数中的5换成6
30
fgets(…)读入文本行时的两种情况。
1. 假如n大于一行的字符串长度,那么当读到字符串末尾的换行符时,fgets(..)会返回。并且在s的最后插入字符串结束标志”\0″。 而s缓冲区剩余的位置不会再填充。
2. 假如n小于等于一行的字符串的长度,那么读入n-1个字符,此时并没有读入\n原因是并没有到行尾
example:
12345
fgets(str,5,stdin);
此时,读入4个字符,12345\n,实际上还有最后的”\0″,所以,strlen(s)=4。
1. 假如n大于一行的字符串长度,那么当读到字符串末尾的换行符时,fgets(..)会返回。并且在s的最后插入字符串结束标志”\0″。 而s缓冲区剩余的位置不会再填充。
2. 假如n小于等于一行的字符串的长度,那么读入n-1个字符,此时并没有读入\n原因是并没有到行尾
example:
12345
fgets(str,5,stdin);
此时,读入4个字符,12345\n,实际上还有最后的”\0″,所以,strlen(s)=4。