对fgets函数有两点说明:
1) 在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束 。
2) fgets函数也有返回值 , 其返回值是字符数组的首地址 。
2. 写字符串函数fputs
fputs函数的功能是向指定的文件写入一个字符串,其调用形式为:
fputs(字符串,文件指针);
其中字符串可以是字符串常量,也可以是字符数组名,或指针变量,例如:
fputs(“abcd“,fp);
其意义是把字符串“abcd”写入fp所指的文件之中 。
【例13.5】在例13.2中建立的文件string中追加一个字符串 。
#includestdio.h
main()
{
FILE *fp;
char ch,st[20];
if((fp=fopen("string","at+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
scanf("%s",st);
fputs(st,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
本例要求在string文件末加写字符串,因此,在程序第6行以追加读写文本文件的方式打开文件string 。然后输入字符串,并用fputs函数把该串写入文件string 。在程序15行用rewind函数把文件内部位置指针移到文件首 。再进入循环逐个显示当前文件中的全部内容 。
13.4.3 数据块读写函数fread和fwtrite
C语言还提供了用于整块数据的读写函数 。可用来读写一组数据,如一个数组元素 , 一个结构变量的值等 。
读数据块函数调用的一般形式为:
fread(buffer,size,count,fp);
写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp);
其中:
buffer 是一个指针,在fread函数中,它表示存放输入数据的首地址 。在fwrite函数中,它表示存放输出数据的首地址 。
size 表示数据块的字节数 。
count 表示要读写的数据块块数 。
fp 表示文件指针 。
例如:
fread(fa,4,5,fp);
其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中 , 连续读5次 , 即读5个实数到fa中 。
【例13.6】从键盘输入两个学生数据 , 写入一个文件中,再读出这两个学生的数据显示在屏幕上 。
#includestdio.h
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main()
{
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("d:\\jrzh\\example\\stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i2;i++,pp++)
scanf("%s%d%d%s",pp-name,pp-num,pp-age,pp-addr);
pp=boya;
fwrite(pp,sizeof(struct stu),2,fp);
rewind(fp);
fread(qq,sizeof(struct stu),2,fp);
printf("\n\nname\tnumber age addr\n");
for(i=0;i2;i++,qq++)
printf("%s\t%5d%7d %s\n",qq-name,qq-num,qq-age,qq-addr);
fclose(fp);
}
本例程序定义了一个结构stu,说明了两个结构数组boya和boyb以及两个结构指针变量pp和qq 。pp指向boya,qq指向boyb 。程序第16行以读写方式打开二进制文件“stu_list” , 输入二个学生数据之后,写入该文件中,然后把文件内部位置指针移到文件首,读出两块学生数据后,在屏幕上显示 。
------
回复此文章 |
回复主题:Re:c语言文件操作 | 作者: haohao | 军衔:六级军士 | 发表时间:2004-07-28 11:08:47
下午应该把这个搞定了.
------
回复此文章 |
回复主题:Re:Re:c语言文件操作 | 作者: haohao | 军衔:六级军士 | 发表时间:2004-07-28 11:10:23
- mongodb查看数据库大小 查看mongodb集群容量
- mysql数据库优化 mysql订单优化
- mongodb数据丢失原因 为什么mongodb数据库一直在加载中
- mongodb 查看数据库 mongodb查询数据库表
- mongodb显示所有数据库 mongodb数据突然为空
- mysql备份一个表的数据 备份一个mysql库
- 屏蔽数据库的复杂性 mysql数据库屏蔽权限
- mongodb 创建表 mongodb创建数据库的语法
- 往mysql数据库录数据 lua写数据库mysql
- mongodb数据库语句 mongodb数据库文档
