C语言数据导出问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 16:11:55
以下是我编的程序,我想把这个程序算出来的数字导出到记事本(txt)中,哪位高手能帮我改改下面的程序?#include<stdio.h>
#include<conio.h>
#define M 20
float add(float *a,int y)
{
int j;
float t=0.0;
for(j=0;j<=y;j++)
t=t+a[j];
return(t);
}
void main()
{
float a[M];
float b[M];
int i;
for(i=0;i<M;i++)
a[i]=i;
for(i=0;i<M;i++)
{
b[i]=add(a,i);
printf("%f\n",b[i]);
}
}

修改一下主函数就可以了

void main()
{
FILE *fp; //定义文件指针
float a[M];
float b[M];
int i;

fp=fopen("c:\\数据.txt","w"); //在c盘创建一个“数据.txt”文件

for(i=0;i<M;i++)
a[i]=i;
for(i=0;i<M;i++)
{
b[i]=add(a,i);
printf("%f\n",b[i]);
fprintf(fp,"%f\n",b[i]);//把数据写入fp指向的文件(数据.txt)中

}

fclose(fp);//关闭文件指针

}

呵呵,给分!

标准C语言库函数fprintf/printf格式字符串的转换说明形式是这样的:

%[标志][最小输出宽度][.精度][长度修正符]类型
方括号括起来是可选项。

标志是0或多个标志字符,可以是任意顺序,常用有以下几个:
- 左对齐,缺省是右对齐。
+ 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。
0 输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。

最小输出宽度是10进制整数常量,开头不能是0,不然变成上面的0标志了。如果输出的值小于这个宽度,根据上面的对齐标志决定左对齐还是右对齐,剩下的用填充字符填充,缺省是空格,用0标志指定的话是0。

精度一般是小数点后面跟1个十进制数,对于整型,表示要输出的最少位数,不足的话前面会补0,对于小数,表示小数点后面输出几位小数。

长度修正符修正后面类型的输出长度。l表示long或unsigned long,ll表示long long int或unsigne