函數fgets和fputs、fread和fwrite、fscanf和fprintf用法小結__函數

來源:互聯網
上載者:User

存了挺久沒發出來系列


字串讀寫函數fgets和fputs:

1、fgets()函數:
原型char *fgets(char *s, int n, FILE *stream);
從流中讀取n-1(n預設1024)個字元之前,如遇到了分行符號或EOF,則讀出結束。參數s是來接收字串,如果成功則返回s的指標,否則返回NULL。
在Linux C下也可以從螢幕輸入字串,例:fputs(fgets(s,n,stdin),stdout); 
2、fputs()函數:
原型int fputs(char *string, FILE *stream);
送一個字串到一個流中。


fopen()開啟檔案,fclose()關閉檔案。

資料區塊讀寫函數fread和fwrite:

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中。
[例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”,輸入二個學 生資料之後,寫入該檔案中, 然後把檔案內部位置指標移到檔案首,讀出兩塊學生資料後,在螢幕上顯示。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.