php文本操作方法集合比较第1/2页

字符串读写函数fgets和fputs

风姿浪漫、读字符串函数fgets函数的功能是从钦赐的文本中读一个字符串到字符数组中,函数调用的情势为: fgets(字符数组名,n,文件指针卡塔尔; 此中的n是叁个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最终贰个字符后增加串甘休标识’’。比方:fgets(str,n,fp卡塔尔(قطر‎;的意思是从fp所指的文书中读出n-1个字符送入 字符数组str中。

[例10.4]从e10_1.c文本中读入两个含11个字符的字符串。

#include
main()
{
FILE *fp;
char str[11];
if((fp=fopen(“e10_1.c”,”rt”))==NULL)
{
printf(“Cannot open file strike any key exit!”);
getch();
exit(1);
}
fgets(str,11,fp);
printf(“%s”,str);
fclose(fp);

本例定义了三个字符数组str共18个字节,在以读文件文件情势张开文件e101.c后,从当中读出十一个字符送入str数组,在数组最终二个单元内将丰硕’’,然后在显示器上显示输出str数组。输出的10个字符正是例10.1前后相继的前10个字符。

对fgets函数有两点表达:

1. 在读出n-1个字符早先,如遭遇了换行符或EOF,则读出得了。

2. fgets函数也会有再次回到值,其重回值是字符数组的首地址。

二、写字符串函数fputs

fputs函数的职能是向钦点的文书写入一个字符串,其调用形式为: fputs(字符串,文件指针卡塔尔 在那之中字符串能够是字符串常量,也得以是字符数组名, 或指针 变量,举个例子:

fputs(“abcd“,fp);

其含义是把字符串“abcd”写入fp所指的公文之中。[例10.5]在例10.2中创制的文本string中扩大三个字符串。

#include
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函数把文件之中地点指针移到文件首。 再步入循环每一个彰显当前文件中的全体内容。

多少块读写函数fread和fwrite

C语言还提供了用来整块数据的读写函数。 可用来读写风流洒脱组数据,如二个数组成分,八个构造变量的值等。读数据块函数调用的肖似方式为: fread(buffer,size,count,fp卡塔尔; 写数据块函数调用的相像方式为: fwrite(buffer,size,count,fp卡塔尔国; 当中buffer是三个指南针,在fread函数中,它表示贮存输入数据的首地址。在fwrite函数中,它代表寄存输出数据的首地址。 size 代表数据块的字节数。count 代表要读写的多少块块数。fp 表示文件指针。

例如:

fread(fa,4,5,fpState of Qatar; 其含义是从fp所指的公文中,每一回读4个字节(三个实数卡塔尔送入实数组fa中,一而再读5次,即读5个实数到fa中。

[例10.6]从键盘输入四个学子数量,写入叁个文件中, 再读出这八个学子的多少展现在显示屏上。

#include
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(“stu_list”,”wb+”))==NULL)
{
printf(“Cannot open file strike any key exit!”);
getch();
exit(1);
}
printf(“ninput datan”);
for(i=0;i<2;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(“nnnametnumber age addrn”);
for(i=0;i<2;i++,qq++)
printf(“%st%5d%7d%sn”,qq->name,qq->num,qq->age,qq->addr);
fclose(fp);

本例程序定义了二个组织stu,表明了五个构造数组boya和 boyb甚至多个组织指针变量pp和qq。pp指向boya,qq指向boyb。程序第16行以读写方式张开二进制文件“stu_list”,输入一个学 生数据之后,写入该文件中, 然后把公文之中地点指针移到文件首,读出两块学子数量后,在显示屏上海展览中心示。
当前1/2页 12下一页

发表评论

电子邮件地址不会被公开。 必填项已用*标注