一段的读写二进制的程序遇到莫名奇妙的错误,循环写入的是268个字符,读出的有时是269,有时是270。
搜索问题才知道和fopen的mode参数选择有关:如果没有b,即单以”r”为参数的话,系统就把换行符0A转换为0D0A,因为windows是以0D0A为换行符的。
参考:http://www.cppblog.com/izualzhy/archive/2012/04/23/172489.aspx
本文探讨了一段二进制程序在读写过程中出现字符数量不一致的问题,并解析了fopen函数中mode参数的选择对于Windows系统下换行符处理的影响。
一段的读写二进制的程序遇到莫名奇妙的错误,循环写入的是268个字符,读出的有时是269,有时是270。
搜索问题才知道和fopen的mode参数选择有关:如果没有b,即单以”r”为参数的话,系统就把换行符0A转换为0D0A,因为windows是以0D0A为换行符的。
参考:http://www.cppblog.com/izualzhy/archive/2012/04/23/172489.aspx

被折叠的 条评论
为什么被折叠?