版權聲明:您好,轉載請留下本人部落格的位址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/48244785
編制一個程式,實作将兩個檔案的内容同時顯示在螢幕上,并且最左邊的第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(" ");
}
下面是程式的運作結果:
這個程式還是很好玩的,這裡讓我想到了實作一個比較簡單的文本比較程式。下一篇部落格我們來實作一個文本比較程式。