顺序打印两个文件内容有错
程序代码:
/*编写一个程序,打开两个文件。使用命令行参数获得文件名,让程序打印第一个文件的第一行、第二文件的第二行、第一个文件的第二行、第二个文件的第二行,依次类推,直到打印完行数较多的文件最后一行。*/ #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的内容是: 第二个文件第一行 第二个文件第二行 第二个文件第三行 第二个文件第四行 运行的结果是: 第一个文件第一行 第二个文件第一行 第一个文件第三行 第二个文件第二行 第一个文件第四行第二个文件第三行 第一个文件第四行第二个文件第四行