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

用fread读完文件a后,再读文件b缺无法读取?解决办法

2012-02-29 
用fread读完文件a后,再读文件b缺无法读取?代码如下:但将其中任意一句while(fread(p++,sizeof(char),1,fp)

用fread读完文件a后,再读文件b缺无法读取?
代码如下:但将其中任意一句while(fread(p++,sizeof(char),1,fp)==1);改为
while(!feof(fp))*p++=fgetc(fp);都可以完整的读取2个文件,请问这是什么原因造成的。
*********************************************************************
#include   <stdio.h>
char   *load(char   *p)
{
FILE   *fp;
if   ((fp=fopen( "a ", "r "))==NULL)
{printf( "file   open   error. ");
return   p;}
while(fread(p++,sizeof(char),1,fp)==1);
fclose(fp);
return   p;
}
char   *load1(char   *p)
{
FILE   *fp;
if   ((fp=fopen( "b ", "r "))==NULL)
{printf( "file   open   error. ");
return   p;}
while(fread(p++,sizeof(char),1,fp)==1);
fclose(fp);
return   p;
}
void   sort   (char   *p)
{
int   i,j,k;
char   tmp;
for(i=0;*(p+i+1);i++)
{
k=i;
for(j=i+1;*(p+j);j++)
if(*(p+k)> *(p+j))k=j;
tmp=*(p+i);*(p+i)=*(p+k);*(p+k)=tmp;
}
}
void   save(char   *p)
{
FILE   *fp;
if((fp=fopen( "c ", "w "))==NULL)
{
printf( "creat   file   error. ");
return;
}
while(*p++)fputc(*(p-1),fp);
fclose(fp);
}
main()
{
/*read   the   two   file*/
char   str[81];
char   *p;
p=str;
p=load(p);
printf( "%s   %d\n ",str,p);
p=load1(p);
printf( "%s   %d\n ",str,p);
*p= '\0 ';
/*sort*/
p=str;
sort(p);
save(p);
getch();
}
*************************************************************************


[解决办法]
while(fread(p++,sizeof(char),1,fp)==1);

后面加一句

p--;

热点排行