C语言总结:文件
ASCII文件:即常说的文本文件,每一个字节放一个ASCII代码,代表一个字符。
二进制文件:把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
比如整数10 000,在内存中占2个字节(int型)。如果以ASCII码形式存放,则占5个字节;若按二进制形式输出,只占2个字节。
1. 文件打开与关闭
FILE * fp; //申明文件指针
fp = fopen("filename", 文件使用方式);
fclose(fp); //关闭文件,使文件指针变量不指向该文件
文件使用方式见下表:
文件使用方式 | 含义 | 文件使用方式 | 含义 | |
---|---|---|---|---|
“r”(只读) | 为输入打开一个文本文件 | “rb”(只读) | 为输入打开一个二进制文件 | |
“w”(只写) | 为输出打开一个文本文件 | “wb”(只写) | 为输出打开一个二进制文件 | |
“a”(追加) | 像文本文件尾添加数据 | “ab” | 向二进制文件尾添加数据 |
2. 文件的读写
#include<cstdio>
int main(int argc, char * argv[]){
FILE * fpw = fopen("test.txt", "w");
if(feof(fpw)){
printf("Wrong open!\n");
return 0;
}
int a[] = {1,2,3,4,5};
int i;
for(i=0;i<5;i++)
fprintf(fpw, "%d ", a[i]);
fclose(fpw);
int * b = new int[5];
FILE *fpr = fopen("test.txt", "r");
if(feof(fpr)){
printf("Wrong open!\n");
return 0;
}
i = 0;
while(!feof(fpr)){
fscanf(fpr, "%d ", &b[i]);
i++;
}
for(i=0;i<5;i++){
printf("%d ", b[i]);
}
printf("\n");
delete[] b;
fclose(fpr);
return 0;
}