偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

介紹C/C++文件的操作函數(shù)

開(kāi)發(fā) 后端
本文主要介紹的是fread函數(shù)和fwrite函數(shù),C/C++的文件操作。從功能到調(diào)用形式再到舉例說(shuō)明,介紹的很詳細(xì),希望對(duì)你有幫助,一起來(lái)看。

fwritefread是以記錄為單位的I/O函數(shù),fread和fwrite函數(shù)一般用于二進(jìn)制文件的輸入輸出。

1.函數(shù)功能

用來(lái)讀寫(xiě)一個(gè)數(shù)據(jù)塊。

2.一般調(diào)用形式

 

  1. fread(buffer,size,count,fp);  
  2. fwrite(buffer,size,count,fp); 

 

3.說(shuō)明

(1)buffer:是一個(gè)指針,對(duì)fread來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址。對(duì)fwrite來(lái)說(shuō),是要輸出數(shù)據(jù)的地址。

(2)size:要讀寫(xiě)的字節(jié)數(shù);

(3)count:要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);

(4)fp:文件型指針。

注意:1 完成次寫(xiě)操(fwrite())作后必須關(guān)閉流(fclose());

2 完成一次讀操作(fread())后,如果沒(méi)有關(guān)閉流(fclose()),則指針(FILE * fp)自動(dòng)向后移動(dòng)前一次讀寫(xiě)的長(zhǎng)度,不關(guān)閉流繼續(xù)下一次讀操作則接著上次的輸出繼續(xù)輸出;

3 fprintf() : 按格式輸入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不過(guò)不是寫(xiě)到控制臺(tái),而是寫(xiě)到流罷了。注意的是返回值為此次操作寫(xiě)入到文件的字節(jié)數(shù)。

如:

  1. int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ; 

 

str1:10字節(jié);str2: 10字節(jié);a:2字節(jié);b:8字節(jié),c為33,因?yàn)閷?xiě)入時(shí)不同的數(shù)據(jù)間自動(dòng)加入一個(gè)空格。

文件使用之后一定要關(guān)閉,否則將不能正確顯示內(nèi)容.fwrite:讀入兩個(gè)學(xué)生信息然后用fwrite存入文件

fread:用fread從文件中讀出學(xué)生信息。

 

fwrite.c

 

  1. #include <stdio.h>  
  2. #define SIZE 2  
  3. struct student_type  
  4. {  
  5. char name[10];  
  6. int num;  
  7. int age;  
  8. char addr[10];  
  9. }stud[SIZE];  
  10. void save()  
  11. {  
  12. FILE *fp;  
  13. int i;  
  14. if((fp=fopen("stu_list","wb"))==NULL)  
  15. {  
  16. printf("cant open the file");  
  17. exit(0);  
  18. }  
  19. for(i=0;i<SIZE;i++)  
  20. {  
  21. if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)  
  22. printf("file write error\n");  
  23. }  
  24. fclose(fp);  
  25. }  
  26. main()  
  27. {  
  28. int i;  
  29. for(i=0;i<SIZE;i++)  
  30. {  
  31. scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);  
  32. save();  
  33. }  
  34. for(i=0;i<SIZE;i++)  
  35. {  
  36. printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);  
  37. }  

fread.c

 

  1. #include <stdio.h>  
  2. #define SIZE 2  
  3. struct student_type  
  4. {  
  5. char name[10];  
  6. int num;  
  7. int age;  
  8. char addr[10];  
  9. }stud[SIZE];  
  10. void read()  
  11. {  
  12. FILE *fp;  
  13. int i;  
  14. if((fp=fopen("stu_list","rb"))==NULL)  
  15. {  
  16. printf("cant open the file");  
  17. exit(0);  
  18. }  
  19. for(i=0;i<SIZE;i++)  
  20. {  
  21. if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1)  
  22. printf("file write error\n");  
  23. }  
  24. fclose(fp);  
  25. }  
  26. main()  
  27. {  
  28.  
  29. int i;  
  30. read();  
  31. for(i=0;i<SIZE;i++)  
  32. {  
  33. printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);  
  34. printf("\n");  
  35. }  

 

希望對(duì)你有幫助。

【編輯推薦】

  1. C++必須明白的基礎(chǔ)20條
  2. C++多態(tài)技術(shù)的實(shí)現(xiàn)和反思
  3. VC++如何將程序最小化到托盤(pán)
  4. C/C++中內(nèi)存區(qū)域劃分大總結(jié)
  5. 階乘相關(guān)的算法及其C++實(shí)現(xiàn)
責(zé)任編輯:于鐵 來(lái)源: 博客園
相關(guān)推薦

2010-02-01 10:32:01

C++文件操作

2010-03-26 11:00:55

Python嵌入CC++

2010-03-26 11:00:55

Python嵌入CC++

2020-09-28 08:12:59

CC++時(shí)間

2010-01-25 17:55:38

C++頭文件

2010-03-24 12:45:00

Python 嵌入

2010-02-03 15:52:55

C++ clock()

2011-07-13 11:34:58

CC++時(shí)間函數(shù)

2010-01-15 15:52:18

CC++

2010-01-15 10:41:06

CC++

2011-07-20 17:16:50

C++重載函數(shù)

2011-07-15 01:29:39

C++析構(gòu)函數(shù)

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-01-21 14:28:03

C++靜態(tài)成員函數(shù)

2010-01-26 10:42:26

C++函數(shù)

2016-10-20 16:07:11

C++Modern C++異步

2011-07-20 13:40:09

拷貝構(gòu)造函數(shù)

2010-02-05 16:18:41

C++流式文件操作

2010-01-19 13:43:59

C++函數(shù)

2010-02-05 10:46:10

C++文件流
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)