我用fread(ReadBuffer,180,1,fASCII);读出数据到ReadBuffer的时候其中的0x0d却丢失了,请问怎么回事啊?0D根本就读不出来

解决方案 »

  1.   

    你一定是用文本方式打开文件的,改为二进制方式打开。
    fopen("c:\\a.txt","rb");
      

  2.   

    #include <stdio.h>FILE *stream, *stream2;void main( void )
    {
       int numclosed;   /* Open for read (will fail if file "data" does not exist) */
       if( (stream  = fopen( "data", "r" )) == NULL )
          printf( "The file 'data' was not opened\n" );
       else
          printf( "The file 'data' was opened\n" );   /* Open for write */
       if( (stream2 = fopen( "data2", "w+" )) == NULL )
          printf( "The file 'data2' was not opened\n" );
       else
          printf( "The file 'data2' was opened\n" );   /* Close stream */
       if( fclose( stream ) )
          printf( "The file 'data' was not closed\n" );   /* All other files are closed: */
       numclosed = _fcloseall( );
       printf( "Number of files closed by _fcloseall: %u\n", numclosed );
    }
      

  3.   

    0x0d是可以用r方式读出来的,看其他上下文代码
      

  4.   

    文本方式操作文件时会有系统转换:
    写文件:0x0A -> 0x0D 0x0A
    读文件:0x0D 0x0A -> 0x0A上面的顺序不一定对,当道理是在的。