fread()和strlen()返回值的差异?
C语言fread()读取文件到*q并且返回读取的字符数strlen(*q)返回这个地址的字符数结果两个的返回值有一点差异,最后发现差异数刚好是*q中换行符的个数,也就是说...
C语言 fread()读取文件到*q并且返回读取的字符数
strlen(*q)返回这个地址的字符数
结果两个的返回值有一点差异,最后发现差异数刚好是*q中换行符的个数,也就是说:
fread()返回的读取字符数不包含换行符的个数?
strlen()返回的字符数包含换行符的个数?
是这样吗? 展开
strlen(*q)返回这个地址的字符数
结果两个的返回值有一点差异,最后发现差异数刚好是*q中换行符的个数,也就是说:
fread()返回的读取字符数不包含换行符的个数?
strlen()返回的字符数包含换行符的个数?
是这样吗? 展开
1个回答
展开全部
fread返回值和你采用text还是binary模式打开文件有关,你提到的换行符应该是text模式下返回0x0a一个字节,而在binary模式下返回0x0d 0x0a两个字节(windows系统)。fread以实际读取直到EOF或要求长度时的字节数,strlen则是以'\0'来判断是否字符串结尾,你检查下是否正确添加了字符串结尾字符,另外为什么是*q,q是字符串数组吗??不然两个函数都是操作指针的,没必要用*解引用。
追问
是 q是 字符串数组
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询