13.4.2 字符串读写函数fgets和fputs
1. 读字符串函数fgets
函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:
fgets(字符数组名,n,文件指针);
其中的n是一个正整数 。表示从文件中读出的字符串不超过 n-1个字符 。在读入的最后一个字符后加上串结束标志'\0' 。
例如:
fgets(str,n,fp);
的意义是从fp所指的文件中读出n-1个字符送入字符数组str中 。
【例13.4】从string文件中读入一个含10个字符的字符串 。
#includestdio.h
main()
{
FILE *fp;
char str[11];
if((fp=fopen("d:\\jrzh\\example\\string","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}
fgets(str,11,fp);
printf("\n%s\n",str);
fclose(fp);
}
本例定义了一个字符数组str共11个字节,在以读文本文件方式打开文件string后,从中读出10个字符送入str数组,在数组最后一个单元内将加上'\0',然后在屏幕上显示输出str数组 。输出的十个字符正是例13.1程序的前十个字符 。
对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)
- mongodb查看数据库大小 查看mongodb集群容量
- mysql数据库优化 mysql订单优化
- mongodb数据丢失原因 为什么mongodb数据库一直在加载中
- mongodb 查看数据库 mongodb查询数据库表
- mongodb显示所有数据库 mongodb数据突然为空
- mysql备份一个表的数据 备份一个mysql库
- 屏蔽数据库的复杂性 mysql数据库屏蔽权限
- mongodb 创建表 mongodb创建数据库的语法
- 往mysql数据库录数据 lua写数据库mysql
- mongodb数据库语句 mongodb数据库文档
