| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2045 人关注过本帖
标题:关于fgetc()/fgets,对数据流的影响问题
取消只看楼主 加入收藏
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:2 
关于fgetc()/fgets,对数据流的影响问题
我的这个程序,加入了被注释部分就能正常运行,但是如果不加入注释部分,fgets返回的tmp为空指针,当然如果不输出文件内容也能正常fgets.请问这是为什么?
我猜可能是前面读取文件的时候用的fgetc或者putchar对输出的数据流产生了影响,导致其不能正确读入数据.请各位网友为我支招,多谢!
程序代码:
#define _CRT_SECURE_NO_DEPRECATE
# include <stdio.h>
#include<stdlib.h>
#define see system("pause")
void main()
{
    FILE *ff; 

    char ch,sh[20],*tmp;

    ff = fopen("..\\5.txt", "r+");//以读写方式打开文件
    if (ff == NULL){
        printf("error\n");
        see;
    }

    while ((ch = fgetc(ff))!= EOF)    //输出文件内容
    {
        putchar(ch);
    }
    putchar(10);
/*    fclose(ff);
    see;
    ff = fopen("..\\5.txt", "r+");
    if (ff == NULL){
        printf("error\n");
        see;
    }
*/
    tmp=fgets(sh, 20, ff);    //读取文件数据
    printf("%s\n", tmp);
    see;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: 数据流 影响 
2016-09-07 17:09
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
回复 2楼 ehszt
那是用rewind回到开头就可以了么?

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-09-07 20:23
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
回复 4楼 ehszt
可是我用的是vs2013,有注释是能正常显示的,如果没有注释tmp就是空指针。请问这是为什么呢?

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-09-07 21:05
快速回复:关于fgetc()/fgets,对数据流的影响问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.777281 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved