【C语言】向文件写入东西不能写入换行

我的程序if((fp=fopen("xinxi.txt","ab"))==NULL)//文件为空则退出{printf("cannotopenthisfifl\n");ex... 我的程序if((fp=fopen("xinxi.txt","ab"))==NULL) //文件为空则退出
{
printf("cannot open this fifl\n");
exit(0);
}
fprintf(fp,"%s,%s,%f",clients[number].xingming,clients[number].mima,clients[number].zongjine);
在 fprintf那加\n在txt文件里就看到一个乱码而不是换行
球高手帮忙
展开
 我来答
风若远去何人留
推荐于2017-09-17 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
C语言写文件是可以写入换行的,不过需要使用通配符'\n'.
设定打开文件的指针为fp,那么向文件中写入换行可以用如下几种办法:
1 通过fputc函数:
fputc函数可以写入一个字符,所以可以通过
fputc('\n', fp);
的方式写入一个换行符。
2 通过fprintf函数:
和通过打印函数printf输出一个换行类似,可以
fprintf(fp, "\n");
3 通过fputs函数:
fputs功能是写入一行字符串并换行。这里只需要它的换行功能,所以写入一个长度为0的字符串就可以了,注意不是空串NULL。
fputs("", fp);
4 通过fwrite函数:
fwrite是写一块数据的,用来写一个字符理论上可行,不过是大材小用了。
char c = '\n';
fwrite(&c, 1,1,fp);

以上四种方法都可以向文件写入换行符。
百度网友0d685c6
2015-05-23 · 知道合伙人数码行家
百度网友0d685c6
知道合伙人数码行家
采纳数:3348 获赞数:6283
毕业于中北大学测控技术与仪器专业,本科学位。从事编程3年,擅长电脑的问题,LTE的问题。

向TA提问 私信TA
展开全部
1、你的程序是错误的,所以不能写入换行。
原因如下:用"ab" 打开是二进制文件,要用 fwrite 写。
2、修改建议:写文本文的话用 "w" 就可以了。fprintf(fp,"%s,%s,%f\n",....)。用 \n 换行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
推荐于2017-09-25 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5198万
展开全部
用"ab" 打开是二进制文件。要用 fwrite 写。

写文本文件 用 "w" 就可以了。
fprintf(fp,"%s,%s,%f\n",....
用 \n 换行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jalsy
2009-06-03 · TA获得超过239个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:270万
展开全部
如果你输出文件是文本的建议fopen使用参数"at",那么函数会帮你自动补完换行符。

如果使用"ab"说明是Binary,那么Windows的换行必须是0x0D 0x0A 组成"\r\n"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
电子产品第一线
2009-06-03 · TA获得超过228个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:237万
展开全部
试试\r\n
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式