fopen函数和fread函数、fwrite函数
来源:互联网 发布:19的网络语啥意思 编辑:程序博客网 时间:2024/05/22 15:54
fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。mode有下列几种形态字符串:r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。返回值 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。附加说明 一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。范例#include<stdio.h>main(){FILE * fp;fp=fopen(“noexist”,”a+”);if(fp= =NULL) return;fclose(fp);}
fread和fwrite函数功能
用来读写一个数据块。
一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1 完成次写操(fwrite())作后必须关闭流(fclose());
2 完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
文件使用之后一定要关闭,否则将不能正确显示内容.fwrite:读入两个学生信息然后用fwrite存入文件
fread:用fread从文件中读出学生信息。
fwrite.c
#include <stdio.h>#define SIZE 2struct student_type{char name[10];int num;int age;char addr[10];}stud[SIZE];void save(){FILE *fp;int i;if((fp=fopen("stu_list","wb"))==NULL){ printf("cant open the file"); exit(0);}for(i=0;i<SIZE;i++){ if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) printf("file write error\n");}fclose(fp);}main(){int i;for(i=0;i<SIZE;i++){ scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr); save();}for(i=0;i<SIZE;i++){ printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}}
fread.c
#include <stdio.h>#define SIZE 2struct student_type{char name[10];int num;int age;char addr[10];}stud[SIZE];void read(){FILE *fp;int i;if((fp=fopen("stu_list","rb"))==NULL){ printf("cant open the file"); exit(0);}for(i=0;i<SIZE;i++){ if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1) printf("file write error\n");}fclose(fp);}main(){int i;read();for(i=0;i<SIZE;i++){ printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr); printf("\n");}}
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- fopen()、fwrite()、fread()函数
- 函数名称: fopen、fread、fwrite
- c 函数fopen,fwrite,fread
- c 函数fopen,fwrite,fread
- fwrite 和 fread函数
- fread和fwrite函数
- fopen/fread/fwrite和open/read/write函数的区别
- open/read/write和fopen/fread/fwrite函数的区别
- c 函数fopen,fwrite,fread,fgets,fputs
- linux fopen fread fwrite函数分析
- c 函数fopen,fwrite,fread,fgets,fputs
- fopen()、fwrite()、fread()函数使用说明与示例
- fopen()、fwrite()、fread()函数使用说明与示例
- fread函数和fwrite函数
- sudo -- linux
- Android APP发布混淆版本时可能出现错误的原因--简记(1)
- google test 例子 & coding style
- Hbase helloworld
- 二叉树的非递归遍历
- fopen函数和fread函数、fwrite函数
- 事务基础知识-->Spring事务管理
- IMX6Solo启动流程-Linux 内核启动 七
- HDU 5493 Queue (线段树) 2015合肥网络赛
- 如何在项目中引入.h、.lib和dll、以及.cpp
- 国际化信息-->MVC
- 使用GO语言开发 Redis数据监控程序
- CoordinatorLayout与快速返回的实现
- AndroidUI ToolBar