程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++文件操作具體應用函數介紹

C++文件操作具體應用函數介紹

編輯:C++入門知識

C++編程語言應用方式靈活,可以被看做C語言的升級版本。我們可以通過這篇文章介紹的關於C++文件操作的相關方法來對這一計算機編程語言的相關應用技巧有一個初步的掌握,並從中加深對這一語言的認知程度。

  • 概括C++的學習感想
  • Visual C++應用程序編譯技巧說明
  • C++函數指針相關內容介紹
  • C++ TinyXML使用心得總結
  • 兩種C++數據指針類型詳細介紹

1.C++文件操作中的函數功能

用來讀寫一個數據塊。

2.一般調用形式

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

3.說明

1)buffer:是一個指針,對fread來說,它是讀入數據的存放地址。對fwrite來說,是要輸出數據的地址。

2)size:要讀寫的字節數;

3)count:要進行讀寫多少個size字節的數據項;

4)fp:文件型指針。

注意:1 完成次寫操(fwrite())作後必須關閉流(fclose());

2 完成一次C++文件操作(fread())後,如果沒有關閉流(fclose()),則指針(FILE * fp)自動向後移動前一次讀寫的長度,不關閉流繼續下一次讀操作則接著上次的輸出繼續輸出;

3 fprintf() : 按格式輸入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不過不是寫到控制台,而是寫到流罷了。注意的是返回值為此次操作寫入到文件的字節數。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字節;str2: 10字節;a:2字節;b:8字節,c為33,因為寫入時不同的數據間自動加入一個空格。

文件使用之後一定要關閉,否則將不能正確顯示內容.fwrite:讀入兩個學生信息然後用fwrite存入文件

fread:用fread從文件中讀出學生信息。

  1. fwrite.c  
  2. #include <stdio.h> 
  3. #define SIZE 2  
  4. struct student_type  
  5. {  
  6. char name[10];  
  7. int num;  
  8. int age;  
  9. char addr[10];  
  10. }stud[SIZE];  
  11. void save()  
  12. {  
  13. FILE *fp;  
  14. int i;  
  15. if((fp=fopen("stu_list","wb"))==NULL)  
  16. {  
  17. printf("cant open the file");  
  18. exit(0);  
  19. }  
  20. for(i=0;i<SIZE;i++)  
  21. {  
  22. if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)  
  23. printf("file write error\n");  
  24. }  
  25. fclose(fp);  
  26. }  
  27. main()  
  28. {  
  29. int i;  
  30. for(i=0;i<SIZE;i++)  
  31. {  
  32. scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);  
  33. save();  
  34. }  
  35. for(i=0;i<SIZE;i++)  
  36. {  
  37. printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);  
  38. }  
  39. }  
  40. fread.c  
  41. #include <stdio.h> 
  42. #define SIZE 2  
  43. struct student_type  
  44. {  
  45. char name[10];  
  46. int num;  
  47. int age;  
  48. char addr[10];  
  49. }stud[SIZE];  
  50. void read()  
  51. {  
  52. FILE *fp;  
  53. int i;  
  54. if((fp=fopen("stu_list","rb"))==NULL)  
  55. {  
  56. printf("cant open the file");  
  57. exit(0);  
  58. }  
  59. for(i=0;i<SIZE;i++)  
  60. {  
  61. if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1)  
  62. printf("file write error\n");  
  63. }  
  64. fclose(fp);  
  65. }  
  66. main()  
  67. {  
  68. int i;  
  69. read();  
  70. for(i=0;i<SIZE;i++)  
  71. {  
  72. printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);  
  73. printf("\n");  
  74. }  

C++文件操作相關方法就為大家介紹到這裡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved