企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 显示文件1的内容,右边第41-70列显示文件2的内容;第75-76列显示两文件该行字符总和,其余列显示空白符。另外,每输出20行内容后,另输出2行空行。 下面看一下我的函数实现: ~~~ #include <stdio.h> #include <stdlib.h> #define size 31 char file1[size]; char file2[size]; int i; int readline(FILE *fp,char *file); /** * 编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 * 显示文件1的内容,右边第41-70列显示文件2的内容;第75-76列显示两文件该行字符 * 总和,其余列显示空白符。另外,每输出20行内容后,另输出2行空行。 */ int main() { FILE *fp1; FILE *fp2; char fname1[20]; //文件1的名称 char fname2[20]; //文件2的名称 //统计文件行数 int linecount = 0; //统计每行字符个数 int countSize = 0; //判断是否循环 int isRun = 1; //分别用于保存第一个文件和第二个文件读取的字符数 int count1,count2; printf("Please enter the name of file1: "); scanf("%s",fname1); printf("Please enter the name of file2: "); scanf("%s",fname2); fp1 = fopen(fname1,"r"); fp2 = fopen(fname2,"r"); //循环输出文件内容 while(isRun){ count1 = readline(fp1,file1); count2 = readline(fp2,file2); if(count1 == 0 && count2 == 0) break; if(count1 == 0){ printFirstSpace(0); }else{ printf("%s",file1); printFirstSpace(count1); } if(count2 == 0){ printSecondSpace(0); }else{ printf("%s",file2); printSecondSpace(count2); } countSize = count1 + count2; printf("%d\n",count1+count2); linecount++; //每输出20行,打印2行空行 if(linecount == 20){ printf("\n"); printf("\n"); linecount = 0; } } fclose(fp1); fclose(fp2); return 0; } /** * 用于读取一行字符串,并返回读取的字符个数 * @param * fp : 文件指针 * file : 保存读取的字符串 */ int readline(FILE *fp,char *file){ i = 0; int c; while((c = fgetc(fp)) != '\n'){ //如果读取到文件末尾的时候,就返回0 if(feof(fp)) break; file[i] = c; i++; if(i == 30) break; } file[i] = '\0'; return i; } /** * 该方法用于输出第一个空白部分 * @param * co1 : 第一个文件读取的字符个数 */ void printFirstSpace(int co1) { int spaces = 30 - co1 + 10; printSpaces(spaces); } /** * 该方法用于输出第二个空白部分 * @param * co2 : 第二个文件读取的字符个数 */ void printSecondSpace(int co2) { int spaces = 30 - co2 + 5; printSpaces(spaces); } /** * 该方法用于输出空白 * @param * spaced : 空白的个数 */ void printSpaces(int spaces) { for(i = 0;i < spaces;i++) printf(" "); } ~~~ 下面是程序的运行结果: ![这里写图片描述](https://box.kancloud.cn/2016-05-24_5743c0ad3ea13.jpg "") 这个程序还是很好玩的,这里让我想到了实现一个比较简单的文本比较程序。下一篇博客我们来实现一个文本比较程序。