C下,如何在写入文件中实现换行?

「已注销」 2010-11-26 10:18:15
一文件内容如下(横线内为内容,不包括横线):

-------------------------------

我来了。

-------------------------------

用C进行文件写入操作,想要得到如下结果:

-------------------------------

我来了。

我再次来了。

-------------------------------

我的部分代码为:

FILE *fp;
if((fp=fopen("c:\\s","ab+"))==NULL)
{
printf("\nerror\n");
getchar();
}
fputs("我又来了",fp);


希望在解答时,在主要部分给以分析。
...全文
1332 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2010-11-29
  • 打赏
  • 举报
回复
加 \n换行呀
二进制打开,那就没有什么换行的概念了
xspace_time 2010-11-29
  • 打赏
  • 举报
回复
既然你使用了二进制打开,那么就用fputs("0A");其实0A就是\n了
漫步者、 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hqin6 的回复:]
不以二进制方式打开试试?

a+
[/Quote]这样是可以的,但是必须在前一次输入'\n'才行!
.......
太乙 2010-11-28
  • 打赏
  • 举报
回复
不以二进制方式打开试试?

a+
sea_spray 2010-11-28
  • 打赏
  • 举报
回复
对文件进行写操作是用的fprintf。
HonryZZ 2010-11-26
  • 打赏
  • 举报
回复
我也觉得是, LZ以追加的方式打开文件,然后在字符串前面添加一个\n换行符..不就换行了么?
zfmy_lhb 2010-11-26
  • 打赏
  • 举报
回复
在fputs("我又来了",fp);前面补上代码printf(“\n”);不就可以了
faithzzf 2010-11-26
  • 打赏
  • 举报
回复
"我又来了"前面加一个换行符就可以了吧,\n
ouyh12345 2010-11-26
  • 打赏
  • 举报
回复
应该先定位到文件尾,然后再写
赵4老师 2010-11-26
  • 打赏
  • 举报
回复
if((fp=fopen("c:\\s","ab+"))==NULL)

fputs("\r\n我又来了",fp);


if((fp=fopen("c:\\s","a+"))==NULL)

fputs("\n我又来了",fp);

不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧