顺序打印两个文件内容有错
程序代码:/*编写一个程序,打开两个文件。使用命令行参数获得文件名,让程序打印第一个文件的第一行、第二文件的第二行、第一个文件的第二行、第二个文件的第二行,依次类推,直到打印完行数较多的文件最后一行。*/
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] )
{
FILE *p1,*p2;//创建两个文件指针
char str1[100],str2[100];//创建两个字符串数组
if((p1=fopen(argv[1],"r"))==NULL){
printf("Can't open %s",argv[1]);
exit(1);//尝试打开文件1
}
if((p2=fopen(argv[2],"r"))==NULL){
printf("Can't open %s",argv[2]);
exit(1);//尝试打开文件2
}
while(1){
fgets(str1,80,p1);
fputs(str1,stdout);//打印文件1的内容
fgets(str2,80,p2);
fputs(str2,stdout);//打印文件2的内容
if((fgets(str1,80,p1)) == NULL && (fgets(str2,80,p2))== NULL) break;//退出循环
}
fclose(p1);
fclose(p2);//关闭文件
return 0;
}
文件p1的内容是:
第一个文件第一行
第一个文件第二行
第一个文件第三行
第一个文件第四行
文件p2的内容是:
第二个文件第一行
第二个文件第二行
第二个文件第三行
第二个文件第四行
运行的结果是:
第一个文件第一行
第二个文件第一行
第一个文件第三行
第二个文件第二行
第一个文件第四行第二个文件第三行
第一个文件第四行第二个文件第四行








