查閱相關資料,匯總如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 char money= 's'; 7 char a ='w'; 8 char b ='e'; 9 char day='t'; 10 11 FILE *fp = fopen("a.txt", "a+");//打開並在指定地點創建只寫文件。 12 /* 13 FILE *fp = fopen("路徑","寫入模式"); 14 "w" => 創建並寫入(覆蓋式寫入) 15 "a" => 創建並寫入(接續式寫入) 16 "a+" => 創建並寫入(分行式寫入) 17 */ 18 19 fprintf(fp,"%c,%c,%c,%c,%c\n",money,a,b,b,day);//使用fprintf 將輸出端口變更為 文檔 20 fclose(fp);//關閉指定文件 21 22 return 0; 23 }
歡迎參考
實例分析:
需求:讓用戶輸入學員的姓名、年齡,
並把這些信息按照如下格式,保存到文件 students.txt
例:
姓名:劉備 年齡:38
姓名:張飛 年齡:35
1 #include <stdio.h> 2 3 int main(){ 4 char name[32]; 5 int age; 6 FILE *file; 7 char c; 8 9 file = fopen("students.txt","w"); 10 if(!file){ 11 printf("文件打開失敗\n"); 12 return 1; 13 } 14 15 /* 16 分析: 17 用戶輸入: 18 Rose 19 31 20 輸入緩沖區: 21 'R' 'o' 's' 'e' '\n' '31' '\n' 22 當緩沖區的數據存入數組后,輸入緩沖區內還存留'\n',%d默認跳過讀到整數 23 */ 24 25 while(1){ 26 //提示用戶輸入 27 printf("請輸入學員姓名:"); 28 scanf("%s",name);//Rose 29 30 printf("請輸入%s的年齡:",name); 31 scanf("%d", &age);//31 32 33 //按照指定格式保存到文件 34 fprintf(file,"姓名:%s\t年齡:%d\n",name,age); 35 36 //清空輸入緩沖區 37 fflush(stdin);//fflush 刷新 38 /*或者: 39 while((c=getchar()) != '\n'); 40 */ 41 42 printf("還需要繼續輸入嗎?Y/N\n"); 43 scanf("%c", &c);//如沒有清空輸入緩沖區,將讀取了以前殘留的'\n' 44 if(c == 'y' || c == 'Y'){ 45 continue;//繼續輸入 46 }else{ 47 break; 48 } 49 } 50 51 fclose(file); 52 53 return 0; 54 }
fprintf 往文件中寫格式化數據
函數原型:
#include <stdio.h>
int fprintf( FILE *stream, const char *format, ... );
Demo1:
1 #include <stdio.h> 2 3 int main(){ 4 //格式字符串 5 fprintf(file,"name:%s,age:%d\n","zhangshan","25"); 6 return 0; 7 }
Demo2:
1 while(1){ 2 //提示用戶輸入 3 printf("請輸入學員姓名:"); 4 scanf("%s",name);//Rose 5 6 printf("請輸入%s的年齡:",name); 7 scanf("%d", &age);//31 8 getchar();//將多余回車符讀取掉 9 10 //按照指定格式保存到文件 11 fprintf(file,"姓名:%s\t年齡:%d\n",name,age); 12 13 printf("還需要繼續輸入嗎?Y/N\n"); 14 scanf("%c", &c);//如沒有添加getchar,將讀取了以前殘留的'\n' 15 if(c == 'y' || c == 'Y'){ 16 continue;//繼續輸入 17 }else{ 18 break; 19 } 20 }