| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 698 人关注过本帖
标题:文件指针读取文件内容的时候,指针的地址一直没有改变?
取消只看楼主 加入收藏
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:4 
文件指针读取文件内容的时候,指针的地址一直没有改变?
以前一直以为文件指针读取内容后指针是向后移指向下一个字节,今天试着将函数调用两次发现其实指针地址一直没变。
为什么是这样的,求提到相关容的参考书籍。

程序代码:
#include <stdio.h>
#include <stdlib.h>

//void fun(FILE * p);

int main(void)
{
    FILE * fp;
    char ch;
    if((fp = fopen("f:\\c.txt", "r")) == NULL)
    {
        fprintf(stderr,"Error!\n");
        exit(1);
    }
    while (ch != EOF)
    {
        ch = getc(fp);
        printf("\n%p\n", fp);
        putchar(ch);
    }
    /*
    printf("%p\n", fp);
    fun(fp);    
    printf("\n%p\n", fp);    
    fun(fp);
    printf("\n%p\n", fp);
*/
    fclose(fp);
    return 0;
}
/*
void fun(FILE * p)
{
    char ch = getc(p);
    while (ch != EOF)
    {
        ch = getc(p);
        printf("\n%p\n", p);
        putchar(ch);
    }
}
*/
搜索更多相关主题的帖子: 书籍 
2015-06-04 15:50
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 2楼 calix
也就是说虽然是两个指针变量,但是指向的是同一个结构。第一次函数调用后时改变了结构成员_ptr的值指向了文件结尾。所以第二次再调用无输出。
要用freek()函数让结构成员中_ptr再重新指向文件开始头,才可以再行第二次调用。

人有多懒,编程就有多难。
2015-06-04 16:29
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 2楼 calix
在哪里可以查到这个结构里面的每个成员的意义呢。

程序代码:
#ifndef _FILE_DEFINED
struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif

人有多懒,编程就有多难。
2015-06-04 16:36
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 5楼 calix
对啊,打印就知道啊,呵呵。谢谢,我去多打印几次看下。

人有多懒,编程就有多难。
2015-06-04 16:43
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 7楼 TonyDeng
没目的,没方向,上班又闲。所以魔障了,哦哈哈哈…………

人有多懒,编程就有多难。
2015-06-05 11:50
快速回复:文件指针读取文件内容的时候,指针的地址一直没有改变?
数据加载中...
 
   



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

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