2、存入文件(打开文件->存储->关闭文件 先要打开文FLE帕open( char filename, char* type) if((fp=fopep u B FILE*fp= fopen ("C: IICONFIG SYS","rw"); printf filename是文件名 exit(1) 包含路径。如果不含路径,表示打开当前目录下 的文件 type是打开方式 °常用为"r、"w"、"rw"和"a",分别表示只读、 只写、读写和添加 ·“b”表示二进制文件,不写“b”表示文本文件 返回值为指向此文件的指针,留待以后使用 inta=30000 1.ASc码文件中存储格式 二者各有特点 ASC文件浪费空间和时间,直观 2二进制文件中存储格式:3 二进制文件节省空间和时间,不直观
6 2、存入文件(打开文件->存储->关闭文件) /*先要打开文件*/ if((fp=fopen("stu_list.dat","wb+"))==NULL) { printf("Cannot open file strike any key exit!"); exit(1); } ◼FILE *fopen(char *filename, char * type); –例:FILE *fp = fopen("C:\\CONFIG.SYS", "rw"); –filename是文件名 •包含路径。如果不含路径,表示打开当前目录下 的文件 –type是打开方式 •常用为"r"、"w"、"rw"和"a",分别表示只读、 只写、读写和添加 •“b”表示二进制文件,不写“b”表示文本文件 –返回值为指向此文件的指针,留待以后使用 int a=30000; –如果打开失败,返回值为NULL 1. ASCII码文件中存储格式:‘3’ , ‘0’ , ‘0’ , ‘0’ , ‘0’,(5个字节) 2. 二进制文件中存储格式:30000的补码(2个字节),即 11101010 01100000 二者各有特点: ASCII文件浪费空间和时间,直观 二进制文件节省空间和时间,不直观
int fprintf(FILE fp, char *format, arg1 2、存入y0 存入文件 ·函数功能:按照 forma给出的控制符格式,将变元 arg1,, argn的值写入到印p所指向的文件中去 for(i=0. Pp=br- fprintf(fp, %s %d %d %s\n". pp->name, pp->num, pp >age, pp->addr) 如果存储的全部是字符类型,也可以用 fwri Jint fputc(int c, FILE"fp) int fputs(char s, FILE " fp) 功能:将字符串写到指向的文件中去 成功时返回o,出错时返回EOF 例: fputs(" abcde",fp):/将字符串写到f指向的文件*/
7 2、存入文件(打开文件->存储->关闭文件) /*存入文件(输出到文件)*/ for(i=0,pp=boya;i<N;i++,pp++) fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp- >age,pp->addr); 如果存储的全部是字符类型,也可以用 fwrite( pp, sizeof(struct stu), 1, fp); •int fprintf(FILE *fp, char *format, arg1, …, argn) •函数功能:按照format给出的控制符格式,将变元 arg1,…,argn的值写入到fp所指向的文件中去 。 •unsigned fwrite(void *ptr,unsigned size,unsigned numb,FILE *fp); •函数功能:把从ptr开始的numb个size大小的数据块写入fp 指向的文件,函数调用成功返回count的值,否则返回-1。 •当写一个字符或一个字符串时,可用fputc()和fputs(). ◼int fputc(int c, FILE *fp); –功能:向fp输出字符c –若写入错误,则返回EOF,否则返回c –例:fputc(‘a’, fp); /*将字符a写到fp指向的文件*/ ▪int fputs(char *s, FILE *fp); ▪功能:将字符串写到fp指向的文件中去 ▪成功时返回0,出错时返回EOF ▪例:fputs(“abcde”, fp); /*将字符串写到fp指向的文件*/