c语言怎么把一个数组里的值存入文本文件里

例如一个数组initbuf[20],想把它里面的所有的值依次存入到一个文本文件里。怎么操作?... 例如一个数组init buf[20],想把它里面的所有的值依次存入到一个文本文件里。怎么操作? 展开
 我来答
风若远去何人留
推荐于2017-09-03 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450130
专业C/C++软件开发

向TA提问 私信TA
展开全部
对于数组type a[N], 要将其写入文件有两种方式可以使用。
1 将数组以二进制方式写入文件。如
fwrite(a, sizeof(a), 1, fp);
可以将数组整体以二进制方式写入文件中。

2 按照元素,依次写入文件。具体写入格式与数组的类型有关。如为int数组可以写作:
int i;
for(i = 0; i < N; i++)
fprintf("%d,", a[i]);

两种方法各有优缺点:
1 代码量上,第一种方式更简单高效;
2 运行效率上,第一种方法的执行效率更高;
3 文件空间大小上:
如果数组中的字符串元素较多,那么二者写入后目标文件大小相似,或者第二种方式占用的空间较小。
如果数组中的整型或浮点型数据较多,那么第一种方式占用的空间较小。
4 目标文件可读性:
第一种方法得到的文件是二进制文件,需要用专门的阅读器打开,且必须是专业人士才可以读懂。
第二种方法更直观,直接打开文本文件就可以阅读输出结果。
百度网友144dd69f1
推荐于2017-09-30 · TA获得超过184个赞
知道答主
回答量:84
采纳率:0%
帮助的人:70.3万
展开全部
先用fopen以“w”的形式建立一个文件,再用for循环加写文件fprintf语句即可。具体语句
FILE *fp; int i;(假设buf数组已经定义且有值)
fp=fopen("1.txt","w");
for(i=0;i<20;i++)
fprinf(fp,"%d\n",buf[i]);
完毕
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
码道长
2012-03-12 · TA获得超过1348个赞
知道小有建树答主
回答量:220
采纳率:80%
帮助的人:61.1万
展开全部
不多说,直接贴代码:
#include <stdio.h>
#define MAXCNT 2
void main(int argc,char * argv[])
{
int buf[MAXCNT];
FILE * fpout;
int i = 0;

printf("输入个%d整数:",MAXCNT);
do
{
printf("输入第%d个整数,按回车确认:",i);
scanf("%d",&buf[i++]);
fflush(stdin);
}while(i < MAXCNT);
if(!(fpout = fopen("out.txt","a+")))
{//a+表已追加的方式打开,即如果文件已经有内容,不覆盖,而以w方式打开会覆盖
printf("打开文件出错!\n");
getchar();
exit(1);
}
else
{
i = 0;
do
{
fprintf(fpout,"%d\n",buf[i++]);
}while(i<MAXCNT);
}
if(!fclose(fpout))
{
printf("输入成功,请打开文件:%s\\out.txt查看!\n",argv[0]);
}
else
printf("关闭文件:%s\\out.txt出错!\n",argv[0]);
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弃婴1991
2012-03-10
知道答主
回答量:21
采纳率:0%
帮助的人:11.4万
展开全部
用fprintf函数加个for循环不就可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式