Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491089
  • 博文数量: 63
  • 博客积分: 1187
  • 博客等级: 少尉
  • 技术积分: 706
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-05 16:53
个人简介

Must Be

文章分类

全部博文(63)

文章存档

2019年(1)

2017年(4)

2016年(6)

2015年(2)

2014年(1)

2013年(3)

2012年(10)

2011年(36)

我的朋友

分类: C/C++

2011-06-08 10:33:27

问题的关键是没有更新缓冲区
使用 int fflush(FILE* stream) 更新
正确代码如下

代码:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main(void)
  5. {
  6.     FILE * fp;
  7.     char buf[1024];

  8.     if ((fp = fopen("aa", "a+")) == NULL) {
  9.         printf("fopen error !\n");
  10.         exit(-1);
  11.     }

  12.     while (fgets(buf, 1024, stdin) != NULL){
  13.         printf("%s", buf);
  14.         if (fputs(buf, fp) == EOF) {
  15.             printf("fputs fp error!\n");
  16.             exit(-1);
  17.         }
  18.         fflush(fp);
  19.     }

  20.     fclose(fp);

  21.     exit(0);
  22. }
阅读(839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~