如何改變輸出方式(讓printf輸出結果保存到TXT文本中)


查閱相關資料,匯總如下:

 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         }

 

版權聲明:  伍悅匿匿


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM