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

来源:百度知道 编辑:UC知道 时间:2024/06/09 13:45:43
我的程序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文件里就看到一个乱码而不是换行
球高手帮忙

1、你的程序是错误的,所以不能写入换行。
原因如下:用"ab" 打开是二进制文件,要用 fwrite 写。
2、修改建议:写文本文的话用 "w" 就可以了。fprintf(fp,"%s,%s,%f\n",....)。用 \n 换行。

用"ab" 打开是二进制文件。要用 fwrite 写。

写文本文件 用 "w" 就可以了。
fprintf(fp,"%s,%s,%f\n",....
用 \n 换行

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);

以上四种方法都可以向文件写入换行符。

如果你输出文件是文本的建议fopen使用参数"at",那么函数会帮你自动补完换行符。

如果使用"ab"说明是Binary,那么Windows的换行必须是0x0D 0x0A 组成"\r\n"