c语言不通fgets函数的用法,[求助]fgets函数使用请教

[求助]fgets函数使用请教

*/ --------------------------------------------------------------------------------------

*/ 出自: 编程中国 http://www.bc-cn.net

*/ 作者: wangjian2006 QQ:464663391

*/ 时间: 2007-7-9 编程论坛首发

*/ 声明: 尊重作者劳动,转载请保留本段文字

*/ --------------------------------------------------------------------------------------

先看一段小代码

#include

#include

void main()

{

FILE *in = NULL;

char *p = NULL;

char xx[3][3] = {0, };

int i = 0;

//打开in.dat文件,该文件中有两行数据,第一行为11,第二行为22

in = fopen("in.dat","r");

//第一次调用fgets函数

p = fgets(xx[0],3,in);

printf("\nxx[0] = %s",xx[0]);

//第二次调用fgets函数

p = fgets(xx[0],3,in);

printf("\nxx[0] = %s",xx[0]);

*p = NULL;

fclose(in);

};

可能大家都知道输出结果理所当然是:

11

22

我的疑问是在执行fgets(xx[0],3,in)前后,指针in不变,返回的指针p也不会变(都是指向&xx[0][0]);

那么程序凭借什么在第二次执行fgets时去从第二行开始获取??

不知道我表达的意思大家明白不?或许程序自己定义了一个指针来指向执行后的开始地址?

[此贴子已经被作者于2007-7-9 23:20:03编辑过]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值