C实现两个文件的内容输出到同一个屏幕
来源:互联网 发布:如何安装网络机顶盒 编辑:程序博客网 时间:2024/05/16 12:23
编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 显示文件1的内容,右边第41-70列显示文件2的内容;第75-76列显示两文件该行字符总和,其余列显示空白符。另外,每输出20行内容后,另输出2行空行。
下面看一下我的函数实现:
#include <stdio.h>#include <stdlib.h>#define size 31char 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(" ");}
下面是程序的运行结果:
这个程序还是很好玩的,这里让我想到了实现一个比较简单的文本比较程序。下一篇博客我们来实现一个文本比较程序。
1 0
- C实现两个文件的内容输出到同一个屏幕
- awk把所有日期下的内容输出到同一个文件中
- SecureCRT配置屏幕内容输出到log文件
- 将两个文件的内容排序后输出到一个文件中
- Linux命令执行的屏幕输出内容重定向到日志文件
- 将Control的日志输出到同一个文件
- [c]文件内容反向输出到另一个文件(递归实现)
- 两个.c文件访问同一个全局变量的用法
- c/c++中数据输出到文件名有变量的文件中或多个程序运行结果输出到同一个文件中的方法
- Python 标准输出 sys.stdout 重定向,将屏幕输出内容输出到文件
- 将屏幕上的内容输出到一个文本中
- c语言文件操作之将文件1的特定内容输出到文件2
- RandomAccessFile实现倒序输出文件的内容
- 用cmd的FC命令 对比两个文件夹内容不同并将文件名输出到文件中
- 将前缀和后缀相同的文件移动到同一个目录的算法设计及C代码实现
- Android实现log输出内容到sd卡中的文件的功能
- 用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
- java输出内容到文件
- 程序员如何保持优秀
- poj 2385 Apple Catching
- ZOJ 2975 Kinds of Fuwas
- 常用SQL语句收藏 <三>
- Linux 下报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must解决方案
- C实现两个文件的内容输出到同一个屏幕
- 源码安装openssl
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 数据结构学习笔记 (一)
- 获得IOS的版本号
- 有关获取上下文和系统变量
- Android系统中设置TextView的行间距(非行高)
- iOS 打包所遇到的问题:can't link with a main executable file ‘XXX’for architecture armv7
- 用中断实现流水灯