FILE *stream;
if( (stream = fopen( "d;\\data.txt", "r" )) != NULL )   
{
FILE *file;
if((file = fopen( "d:\\data2.txt","wb")) != NULL)
{
while (!feof(stream))

char *ch = fgets( line, 1024, stream );//读一行
if (ch == NULL) break;
if (ch[0] == 10) 
continue;//指定删除空白行,在此你可以处理你的删除条件
fputs(ch,file);//生成data2.txt(data.txt没改动)
}
fclose( file );
}
fclose( stream ); 

解决方案 »

  1.   

    一行行读取文件内容可以用这个函数:fgets。具体形式是:char *fgets( char *string, int n, FILE *stream ); string为读入的字符串(字符数组当然也可以);n为读取长度;stream为文件指针。当给的n长度大于文件中一行的内容的长度,函数读取文件中一行的内容,以回车键结束,(这大概就是你所需要的吧,你可以把n设得大点,以保证他可以读取一行的内容)。读取完毕后,指针移至下一行。当给的n长度小于文件中一行的内容的长度,函数会读取n长度的内容。详细的你可以看一下msdn,这个函数我用过,目的和你的一样。很好用,你也试试。
      

  2.   

    int fseek( FILE *stream, long offset, int origin );
      

  3.   

    前面我已经说了。fgets之后,指针会自动下移的。