本文目錄一覽:
c語言如何讀寫大型的txt文件
#include stdio.h
#include string.h
#define MAXSIZE 4000000
struct password {
char psw[12]; // 密碼名稱
int counter; // 出現次數計數器
};
int Append(struct password a[], int *n, char psw[]) {
int i;
for(i = 0; i *n; ++i) {
if(strcmp(a[i].psw,psw) == 0) {
++a[i].counter;
return 2;
}
}
if(*n MAXSIZE) {
strcpy(a[*n].psw,psw);
a[*n].counter = 1;
++(*n);
return 1;
}
return 0;
}
int main() {
struct password a[MAXSIZE];
char psw[12];
int i,n = 0,id;
char infilename[] = “indata.txt”;
char outfilename[] = “outdata.txt”;
FILE *inf,*outf;
if((inf = fopen(infilename,”rt”)) == NULL) {
printf(“不能打開數據文件:%s。\n”,infilename);
return 1;
}
while(fscanf(inf,”%d %11s”,id,psw) == 2) {
if(Append(a,n,psw) == 0) break;
}
fclose(inf);
if((outf = fopen(outfilename,”wt”)) == NULL) {
printf(“不能打開數據文件:%s。\n”,outfilename);
return 2;
}
for(i = 0; i n; ++i)
fprintf(outf,”%s %d\n”,a[i].psw,a[i].counter);
fclose(outf);
return 0;
}
C語言如何寫超過2G大小的文件
將 =top#源反編譯 重複翻倍 直到超過1G然後再反編譯翻倍 2G以上就有了
C語言高速讀大文件、寫大文件的方式
寫文件一般是追加快些
如果你要輸出例如XML。
還有,每個進程應該有4G,靠操作系統內存管理+頁面文件維持、
還有,開個幾百M的數組不划算、用malloc+free快些,可以動態的,不讓操作系統在載入時就開闢幾百M,而是陸續的開——除非你在寫彙編程序——彙編向OS申請內存很費勁,要 SYSCALL
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/193178.html