我想知道一個簡單的方法來按行排序文本文件。 我有2個文件:如何按行排序文本文件?
文件1:
asazxz
dsa dsasd
dsds tut
pewoq
文件2:
uiosda dsds
poisss
我當前的代碼是:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[]){
int nrf1=0;
int nrf2=0;
FILE *f1=NULL;
FILE *f2=NULL;
FILE *fe=NULL;
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"r");
fe=fopen(argv[3],"w");
if (f1==NULL || f2==NULL || fe==NULL){
printf("couldn't open a file \n");
return 1;
}
char p;
while (1){
p=fgetc(f1);
if(p==EOF) break;
nrf1++;
}
while(1){
p=fgetc(f2);
if(p==EOF) break;
nrf2++;
}
rewind(f1);
rewind(f2);
while ((p = fgetc(f1))!= EOF)
fputc(p,fe);
while ((p = fgetc(f2))!= EOF)
fputc(p,fe);
//if(nrf1>nrf2){
//printf("%s %d \n",argv[1],\nrf1);
//while((p=fgetc(f1))!=EOF)
//
//}
//else{
//printf("%s %d \n",argv[2],nrf2);
//while((p=fgetc(f2))!=EOF)
//
//}
rewind(fe);
fclose(f1);
fclose(f2);
fclose(fe);
return 0;
}
我在一個文件3
合併文件1和文件2我有一些想法,我可以排序文件3的行,但我真的不知道如何使它們發生。
一個正在經歷兩個較長的文本,找到一個\ n和所有的文本,直到\ n被放入一個數組,然後排序數組,然後將排序數組的每個元素放在一個線形文件3。
另一個正在通過file3並嘗試以某種方式以alphabitically方式切換行,如bubblesort。
編輯:設法做到這一點,只是需要一些指導,感謝大家
你可以使用linux sort命令? –
考慮到的「計算機程序設計第3卷的藝術」一大塊致力於回答這個領域,我認爲這是海報孩子「太寬」的問題。 –
第一個循環的目的是什麼? –