如何改变输出方式(让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 }
本文为博主原创文章,转载请注明来源http://www.cnblogs.com/wuyuenini/