|
楼主 |
发表于 2008-3-14 12:02:42
|
显示全部楼层
问题的关键是没有更新缓冲区
使用 int fflush(FILE* stream) 更新
正确代码如下
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(void)
- {
- FILE * fp;
- char buf[1024];
- if ((fp = fopen("aa", "a+")) == NULL) {
- printf("fopen error !\n");
- exit(-1);
- }
- while (fgets(buf, 1024, stdin) != NULL){
- printf("%s", buf);
- if (fputs(buf, fp) == EOF) {
- printf("fputs fp error!\n");
- exit(-1);
- }
- fflush(fp);
- }
- fclose(fp);
- exit(0);
- }
复制代码 |
|