字符的读写 :fgetc 和 fputc;
字符输入
ch=getchar();
while(ch!='\n')
{
fputc(ch,fp);
ch=getchar();
//printf("enter\n");
}
字符串的读写 :fgets 和 fputs;
数据库的读写 :fread 和 fwrite;
函数原型
(1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针
函数返回读取数据的个数。
(2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针
函数返回写入数据的个数。
注意
(1)写操作fwrite()后必须关闭流fclose()。
(2)不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。
一个例子(学生名字信息)
#include<stdio.h>
struct student{
char name[8];
}stu[3],st[3];
int main()
{
int i;
FILE *fp;
fp=fopen("student.txt","r+");
/**/
for(i=0;i<3;i++)
{
printf("Enter name");
scanf("%s",&stu[i].name);
}
fwrite(stu,sizeof(struct student),3,fp); //fwrite要放到循环体for外面
rewind(fp);
fread(st,sizeof(struct student),3,fp);
for(i=0;i<3;i++)
{
printf("%s\n",st[i].name);
}
fclose(fp);
return 0;
}
格式化的读写 :fscnaf 和 fprintf;