fopen后只能读到部分文件问题解决,文本方式vs二进制方式

在windows下经常有人遇到,fopen打开文件后,读取文件内容,读到一半的就收到EOF的问题。

其根源在于打开的方式选择了文本方式而未选择二进制方式。
在windows系统上这是有区别的,如果不加b,读取到第一个’\0’就会终止了。b –按二进制文件读取。

fp=fopen("D:\1.txt","rb");

DESCRIPTION
The fopen() function opens the file whose name is the string pointed to by path and associates a stream with it.

   The argument mode points to a string beginning with one of the following sequences (possibly followed by additional characters, as described below):

   r      Open text file for reading.  The stream is positioned at the beginning of the file.

   r+     Open for reading and writing.  The stream is positioned at the beginning of the file.

   w      Truncate file to zero length or create text file for writing.  The stream is positioned at the beginning of the file.

   w+     Open for reading and writing.  The file is created if it does not exist, otherwise it is truncated.  The stream is positioned at the beginning of the file.

   a      Open for appending (writing at end of file).  The file is created if it does not exist.  The stream is positioned at the end of the file.

   a+     Open  for  reading  and  appending  (writing at end of file).  The file is created if it does not exist.  The initial file position for reading is at the beginning of the file, but output is
          always appended to the end of the file.

   The mode string can also include the letter 'b' either as a last character or as a character between the characters in any of the two-character strings described above.  This is strictly  for  com‐
   patibility with C89 and has no effect; the 'b' is ignored on all POSIX conforming systems, including Linux.  (Other systems may treat text files and binary files differently, and adding the 'b' may
   be a good idea if you do I/O to a binary file and expect that your program may be ported to non-UNIX environments.)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值