c语言 怎样用文件中读取数据 然后进行计算
3个回答
展开全部
主要通过fscanf,fprintf格式化输入输出函数实现,主要代码如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *pf=NULL;
char name[20];//存储用户名
float salary=0;//存储工资
pf=fopen("test.txt", "r+" );//test.txt文件中内容为kobe 90000.80
if(!pf)
{
printf("打开文件失败,程序退出!");
exit(1);
}
fscanf(pf,"%s %f",name,&salary);
salary*=0.9;//处理工资,例如扣除五险、扣税等。
fprintf(pf,"\n%f",salary);//写入test.txt文件中
printf("%s %f\n",name,salary);//输出kobe 81000.718750
if(pf)//关闭文件
{
fclose( pf);
pf=NULL;
}
return 0;
}
int fscanf( FILE *stream, const char *format, ... );函数fscanf()以scanf()的执行方式从给出的文件流中读取数据,
fscanf()的返回值是事实上已赋值的变量的数,如果未进行任何分配时返回EOF。
int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送参数到由stream指定的文件。fprintf()只能和printf()一样工作,
fprintf()的返回值是输出的字符数,发生错误时返回一个负值。
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *pf=NULL;
char name[20];//存储用户名
float salary=0;//存储工资
pf=fopen("test.txt", "r+" );//test.txt文件中内容为kobe 90000.80
if(!pf)
{
printf("打开文件失败,程序退出!");
exit(1);
}
fscanf(pf,"%s %f",name,&salary);
salary*=0.9;//处理工资,例如扣除五险、扣税等。
fprintf(pf,"\n%f",salary);//写入test.txt文件中
printf("%s %f\n",name,salary);//输出kobe 81000.718750
if(pf)//关闭文件
{
fclose( pf);
pf=NULL;
}
return 0;
}
int fscanf( FILE *stream, const char *format, ... );函数fscanf()以scanf()的执行方式从给出的文件流中读取数据,
fscanf()的返回值是事实上已赋值的变量的数,如果未进行任何分配时返回EOF。
int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送参数到由stream指定的文件。fprintf()只能和printf()一样工作,
fprintf()的返回值是输出的字符数,发生错误时返回一个负值。
展开全部
fgets会把数字当做字符串读入,你在程序中把字符串转换为数字就可以进行计算
更多追问追答
追问
大神能说的详细一点么 ^-^
追答
不好意思哦最近忙实验没及时帮你解决问题,我刚查了下函数手册发现这个函数更好用,fscanf
先用例子介绍它的用法,你先在E盘下新建一个文本文件dat.txt然后在里面写入一些数字
#include
#include
int main()
{
int num,sum=0;
FILE*fp;
if((fp=fopen("E:\\dat.txt","r"))==NULL)
{
printf("can not to open the file!\n");
exit(0);
}
while(fscanf(fp,"%d",&num)!=EOF)//若不到文件结尾则继续
{
sum+=num;
}
printf("sum=%d\n",sum);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询