memcpy(buf1,buf2,10) 需要加'\0' 吗?才能fwrite到文件?

summber_flower 2013-10-19 12:49:52
memcpy(buf1,buf2,10) 需要加'\0' 吗?才能fwrite或者printf到文件?
否则会出现乱码?
...全文
632 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
summber_flower 2013-10-19
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
字符串输出需要一个结束符而已!不然就可能越界输出无效数据而已! 所以每次在使用这些的时候最好清空操作一下! 或者再结尾区加上'\0'结束符, 写文件不需要额外加'\0'的,因为都是定长写进去的!
谢谢 fwrite 不需要 '\0' ? 而printf 需要 在末尾加 '\0' ?
max_min_ 2013-10-19
  • 打赏
  • 举报
回复
字符串输出需要一个结束符而已!不然就可能越界输出无效数据而已! 所以每次在使用这些的时候最好清空操作一下! 或者再结尾区加上'\0'结束符, 写文件不需要额外加'\0'的,因为都是定长写进去的!
summber_flower 2013-10-19
  • 打赏
  • 举报
回复
引用 3 楼 max_min_ 的回复:
[quote=引用 2 楼 u011718046 的回复:] [quote=引用 1 楼 max_min_ 的回复:] 字符串输出需要一个结束符而已!不然就可能越界输出无效数据而已! 所以每次在使用这些的时候最好清空操作一下! 或者再结尾区加上'\0'结束符, 写文件不需要额外加'\0'的,因为都是定长写进去的!
谢谢 fwrite 不需要 '\0' ? 而printf 需要 在末尾加 '\0' ? [/quote] 加上'\0'只是字符串结尾的一个标识符而已!当用到类似printf函数这些操作的时候,输入遇到'\0'就结束输出,不然就越界输出乱码! 写文件是你固定写入字节长度的!如果不是额外要求,就不需要写入'\0'了! 但是对于字符串本身来说,在给它赋值完后,最好加上'\0'[/quote] 多谢大神
max_min_ 2013-10-19
  • 打赏
  • 举报
回复
引用 2 楼 u011718046 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 字符串输出需要一个结束符而已!不然就可能越界输出无效数据而已! 所以每次在使用这些的时候最好清空操作一下! 或者再结尾区加上'\0'结束符, 写文件不需要额外加'\0'的,因为都是定长写进去的!
谢谢 fwrite 不需要 '\0' ? 而printf 需要 在末尾加 '\0' ? [/quote] 加上'\0'只是字符串结尾的一个标识符而已!当用到类似printf函数这些操作的时候,输入遇到'\0'就结束输出,不然就越界输出乱码! 写文件是你固定写入字节长度的!如果不是额外要求,就不需要写入'\0'了! 但是对于字符串本身来说,在给它赋值完后,最好加上'\0'

65,179

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧