C实现两个文件的内容输出到同一个屏幕
程序员文章站
2023-01-28 09:35:11
编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 显示文件1的内容,右边第41-70列显示文件2的内容;第75-76列显示两文件该行字符总和,其余列显示空白符。另外,每输...
编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 显示文件1的内容,右边第41-70列显示文件2的内容;第75-76列显示两文件该行字符总和,其余列显示空白符。另外,每输出20行内容后,另输出2行空行。
下面看一下我的函数实现:
#include #include #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 ,count1+count2); linecount++; //每输出20行,打印2行空行 if(linecount == 20){ printf( ); printf( ); 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)) != ' '){ //如果读取到文件末尾的时候,就返回0 if(feof(fp)) break; file[i] = c; i++; if(i == 30) break; } file[i] = ''; 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( ); }
下面是程序的运行结果:
这个程序还是很好玩的,这里让我想到了实现一个比较简单的文本比较程序。下一篇博客我们来实现一个文本比较程序。