| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:c语言 空文本文件的 文件指针 问题求教
取消只看楼主 加入收藏
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
c语言 空文本文件的 文件指针 问题求教
使一个文件指针fp 指向一个空的txt即文本文件,此时的 feof(fp)为何值?  1?
好像不大对   
假设已经建立了  a.txt 一个空文本文件
#include<stdio.h>
#include<stdlib.h>
int main()
{
  FILE *fp;
  if((fp=fopen("a.txt","r"))==NULL)
 {  
   printf("error!\n");
   exit(0);
  }  
 if(feof(fp))
 printf("void\n");
}
\\此时结果不会输出void

#include<stdio.h>
#include<stdlib.h>
int main()
{
 FILE *fp;
 char c;
if((fp=fopen("a.txt","r"))==NULL)
{
 printf("error!\n");
  exit(0);
 }
c=fgetc(fp);
 putchar(c);
 if(feof(fp))  printf("void\n");
}
会出现 输出void
有假设a.txt 有一个字符 'a'  
第二个程序会把  'a'输出
那么fp的第一个指向到底是什么?
这个问题是我用链表储存文本文件字符时遇到的 当遇到空文本文件 会有错误,为了消除错误直接加上feof判断不管用
 难道只能借鉴第二段代码那样 char c ???
还是文本文件 无论是否为空 末尾都会有一些东西呢?
求高手
第5楼

[ 本帖最后由 tyf19938 于 2013-1-6 14:22 编辑 ]
搜索更多相关主题的帖子: 文本文件 include c语言 
2013-01-06 14:08
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
收藏
得分:0 
回复 2楼 lz1091914999
只能在移动后 feof(fp) 才会有效?
struct words *jiami(FILE *fp)
{
    struct words *p1,*p2,*head;
    int n=0;
    char c;
    p1=p2=(struct words *)malloc(LEN);
    n++;
    c=fgetc(fp);//是不是这样弄  先读取给c 才会在读取空文本时 没有错误呢,
    if(feof(fp))
        exit(0);
    p1->c=c+N;
    while(!feof(fp))
    {
        if(n==1)
         head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct words *)malloc(LEN);
        n++;
        p1->c=fgetc(fp)+N;
    }
    p2->next=p1;
    p1->next=NULL;
    return head;
}
2013-01-06 14:18
快速回复:c语言 空文本文件的 文件指针 问题求教
数据加载中...
 
   



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

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