1,文本文件
文本文件指 每个字节存放一个字符
2,二进制文件
二级制文件是指按其内容直接存入文件
例如:1234在文本文件占4个字节,而在二进制文件占2个字节。
3,输入操作函数
open();close();read();write();
lseek();tell();eof();setmode();chmod();
4,在Visual C++ stdio.h有以下类型定义:
{
char *_ptr;//文件读写位置指针
int _cnt;//缓存区剩余可读写字节数
char *_base;//缓存区起始地址
int _flag;//文件操作标志
int _file;//文件描述符
int _charbuf;//单字节缓存
int _bufsiz;//缓存区的大小
char *_tmpfname;//临时文件名
}
5,**按字符提取文件可以表达成 **
FILE * fp; //定义文件指针
fp=fopen("file.txt","rt");//打开文件
while((ch=fgetc(fp)!='/0')//从文本文件读取字符
putchar(ch);
fclose(fp);//关闭文件
//文本文件的打开方式用t来表示(读文件“rt”,写文件“wt”)
//二进制文件用b来表示("读文件“rb",写文件“wb”)
二,字符方式读写文件
1,向文件中写入(输出)一个字符到磁盘文件中去。
int fputc(int ch,FILE *fp)
例12.1* 从键盘输入一串字符(以回车符’\n’结束),然后输入到磁盘文件中。
#include
#include
int main(){
FILE * fp;
char ch;
if((fp=fopen("out.txt","w"))==NULL){
printf("无法创建文件!\n");
exit(0);
}
while((ch==getchar())!='\n')
fputc(ch,fp);
fclose(fp);
printf("已完成!");
return 0;
}
2,从磁盘文件逐个读入字符,并在终端输出。
用fgetc函数或者getc函数可以从磁盘文件读入一个字符。
** int fgetc ( FILE * fp)**
例12.2 从磁盘文件逐个读入字符,并在终端输出。
#include
#include
int main(){
FILE * fp;
char ch;
if((fopen("out.txt","r"))==NULL){
printf("无法打开文件!\n");
exit(0);
}
while ((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
return 0;
}
```**3,向文件中写入一个字符串**
用fputs(char * string ,FILE * stream)
**例12.3从键盘输入若干行字符把他们输出到磁盘文件中保存起来**
```c
#include
#include
int main(){
FILE *fp;
char string[81];
if((fp=fopen("C://Users//wow//Desktop//records.txt","w"))==NULL) {
printf("无法打开文件!\n");
exit(0);
}
while (gets(string)!=NULL){
//按ctrl +z结束输入
fputs(string,fp);
fputc('\n',fp);
}
fclose(fp);
return 0;
}
4,从文件中读入一个字符串
功能: 从指定文件的流文件读入若干字符并放到字符数组中,当读完n-1个字符或是换行,则结束字符读入。如果是读到换行结束,此时‘\n也作为一个字符送入string数组中。
例,读取文本文件中的内容并在屏幕中显示出来
#include
#include
int main(int argc,char *argv[]) {
FILE *fp ;
char string[81];
if((fp=fopen(argv[1],"r"))==NULL){
printf("无法打开文件!\n");
exit(0);
}
while(fgets(string,81,fp)!=NULL)
printf("%s",string);
fclose(fp);
return 0;
}
数据块方式读写文件
fwrite(arr,100,7,fp);
表示从指针arr,所对应的地址开始,将7个数据块的数据输出到FP所指向的文件
struct student{
char name[10];
char sex;
int age;
float score;**加粗样式**
};
12.5建立学生入学档案文件,每记录包括学生的姓名,性别,年龄和入学总分
这里就写写关键句算了
**fwrite(array,sizeof(array),1,fp)
该语句表示从array中所有元素写入到fp指向的文件中**
例12.6从磁盘文件按记录
fread(&stud,sizeof(stud),1,fp);
读和写为关键语句!!!