一、讀字符串函數fgets函數的功能是從指定的文件中讀一個字符串到字符數組中,函數調用的形式為: fgets(字符數組名,n,文件指針); 其中的n是一個正整數。表示從文件中讀出的字符串不超過 n-1 " /> a高清免费毛片久久,久久久久18,亚洲无线码一区二区三区在线观看

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php文本操作方法集合比較第1/2頁

字符串讀寫函數fgets和fputs

一、讀字符串函數fgets函數的功能是從指定的文件中讀一個字符串到字符數組中,函數調用的形式為: fgets(字符數組名,n,文件指針); 其中的n是一個正整數。表示從文件中讀出的字符串不超過 n-1個字符。在讀入的最后一個字符后加上串結束標志'/0'。例如:fgets(str,n,fp);的意義是從fp所指的文件中讀出n-1個字符送入 字符數組str中。

[例10.4]從e10_1.c文件中讀入一個含10個字符的字符串。

#include<stdio.h>
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共11個字節(jié),在以讀文本文件方式打開文件e101.c后,從中讀出10個字符送入str數組,在數組最后一個單元內將加上'/0',然后在屏幕上顯示輸出str數組。輸出的十個字符正是例10.1程序的前十個字符。

對fgets函數有兩點說明:

1. 在讀出n-1個字符之前,如遇到了換行符或EOF,則讀出結束。

2. fgets函數也有返回值,其返回值是字符數組的首地址。

二、寫字符串函數fputs

fputs函數的功能是向指定的文件寫入一個字符串,其調用形式為: fputs(字符串,文件指針) 其中字符串可以是字符串常量,也可以是字符數組名, 或指針 變量,例如:

fputs(“abcd“,fp);

其意義是把字符串“abcd”寫入fp所指的文件之中。[例10.5]在例10.2中建立的文件string中追加一個字符串。

#include<stdio.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函數把文件內部位置指針移到文件首。 再進入循環(huán)逐個顯示當前文件中的全部內容。


數據塊讀寫函數fread和fwrite

C語言還提供了用于整塊數據的讀寫函數。 可用來讀寫一組數據,如一個數組元素,一個結構變量的值等。讀數據塊函數調用的一般形式為: fread(buffer,size,count,fp); 寫數據塊函數調用的一般形式為: fwrite(buffer,size,count,fp); 其中buffer是一個指針,在fread函數中,它表示存放輸入數據的首地址。在fwrite函數中,它表示存放輸出數據的首地址。 size 表示數據塊的字節(jié)數。count 表示要讀寫的數據塊塊數。fp 表示文件指針。

例如:

fread(fa,4,5,fp); 其意義是從fp所指的文件中,每次讀4個字節(jié)(一個實數)送入實數組fa中,連續(xù)讀5次,即讀5個實數到fa中。

[例10.6]從鍵盤輸入兩個學生數據,寫入一個文件中, 再讀出這兩個學生的數據顯示在屏幕上。

#include<stdio.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("stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("/ninput data/n");
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("/n/nname/tnumber age addr/n");
for(i=0;i<2;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”,輸入二個學 生數據之后,寫入該文件中, 然后把文件內部位置指針移到文件首,讀出兩塊學生數據后,在屏幕上顯示。

php技術php文本操作方法集合比較第1/2頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩经典欧美精品一区 | 国产一区在线观看视频 | 伊香蕉| 色视频免费在线 | 19国产精品麻豆免费观看 | 99热国产在线 | 激情在线观看视频免费的 | 久久国产精品偷 | 91久久国产情侣真实对白 | 亚洲国产一区二区在线 | 亚洲一区小说区中文字幕 | 亚洲一区二区免费看 | 国产普通话一二三道 | 肉色丝袜一区二区高跟鞋 | 影音先锋色偷偷米奇四色 | 久久99国产亚洲高清观看首页 | 国产乱码在线观看 | 色五夜婷婷 | 麻豆91在线播放 | 四虎影视国产精品一区二区 | 一级毛片成人免费看免费不卡 | 浮力影院第一页小视频国产在线观看免费 | 精品久久久久久综合网 | 国产原创91 | 97影院理论午夜论不卡 | 国产精品欧美一区二区三区不卡 | 五月激情六月丁香 | 91噜噜噜在线观看 | 999re6热在线精品视频思思 | 另类小说图片 | 国产精品网页 | 日韩在线一区二区三区视频 | 桃花阁成人网在线观看 | 日日摸夜夜添夜夜添毛片 | 在线观看成人免费 | 97一本大道波多野吉衣 | 爱爱一区| 亚洲国产精品久久久天堂麻豆 | 久久悠悠 | 色女人综合 | 丁香花五月婷婷开心 |