fgetc函数
函数调用语句“fgetc(buf,n,fp);”从fp指向的文件中读入n-1个字符放到buf字符数组中。这里为什么是n-1?? 字符串以'\0'结尾 4goodworld 发表于 2020-4-20 21:57
字符串以'\0'结尾
但是数组长度如果是5,那么你输入五个字符进去,他是不会自己加结束符的啊。这个函数是会自己加结束符? 老牛来学习 发表于 2020-4-20 22:09
但是数组长度如果是5,那么你输入五个字符进去,他是不会自己加结束符的啊。这个函数是会自己加结束符?
scanf、fgetc 什么之类的都会自动加结束符的 本帖最后由 4goodworld 于 2020-4-20 22:37 编辑
老牛来学习 发表于 2020-4-20 22:09
但是数组长度如果是5,那么你输入五个字符进去,他是不会自己加结束符的啊。这个函数是会自己加结束符?
参考:https://www.runoob.com/cprogramming/c-function-fgets.html
上面写的蛮清楚的:
n -- 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
开始我的理解有问题,我实操了一下
我觉得,你要理解起来就是这么理解:
如果你觉得你的字符串如“abcdf”,你认为长度是5,那么请记得,调用时写上5+1=6,请要考虑下还一个空字符,考虑这个空字符的目的是,这个函数自动会加上'\0',相当于你还没干之前,它已经预定了一个位置给了'\0',你少了一个位置,所以是n-1
页:
[1]