首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

读取文件遇到0x1a就停止是咋回事

2012-04-12 
读取文件遇到0x1a就停止是怎么回事voidmain(){FILE*fpinti,junsignedcharpkt[1518]/*readthenewlycreat

读取文件遇到0x1a就停止是怎么回事
void   main()
{
        FILE   *fp;
        int   i,j;
        unsigned   char   pkt[1518];
        /*   read   the   newly   created   files   */
          i=0;   j   =   0;
  fp   =   fopen( "arp02.packet ",   "r ");
          if(fp==NULL)   cout < < "Error,unable   to   open   the   file! ";
  else{
        while(   !feof(fp)   )
        {
                pkt[i]=   fgetc(fp)   &   0xff;
                i++;   j++;
        }
        fclose(fp);}

int   length=j-1;
        for(i=0;   i <length;   i++)
        {
                printf( "0x%02x   ",   pkt[i]);
                if(   i   %   10   ==   9   )
                        printf( "\n ");
        }/*print   pkt*/
        printf( "\n ");}
输出的时候一遇到0x1a就停止,只输出到这个的前一个byte,这是怎么回事


[解决办法]
0x1a 是 Ctrl+Z ,这是模拟文件结束的符号,简单的说,就是文件遇到0x1a后,认为文件已经结束.
[解决办法]
fopen时用fp = fopen( "filename ", "rb " );
可以用二进制形式读文件,可以避免该问题

热点排行
Bad Request.