游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2841|回复: 7

请教,关于“文件读取”

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-1-24 11:01:00 | 显示全部楼层 |阅读模式
  1. void readstr(FILE *f,char *string)
  2. {
  3.         do
  4.         {
  5.                 fgets(string, 255, f);
  6.         } while ((string[0] == '/') || (string[0] == '\n'));
  7.         return;
  8. }
复制代码

这个函数,我看不明白是什么意思。
谁能帮帮我吗? [em5]

9

主题

249

帖子

260

积分

中级会员

Rank: 3Rank: 3

积分
260
发表于 2008-1-24 13:17:00 | 显示全部楼层

Re:请教,关于“文件读取”

fgets(string, 255, f); --- 从文件读取一行的内容
string[0] == '/' ---- 开头字符是‘/’
string[0] == '\n' --- 开头字符是‘\n’,由于是文本形式读取,也即空行判断

所以整体意思就是:
从文件中读取一行内容,且该行即不是空行,也不是以字符‘/’开头

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-24 16:22:00 | 显示全部楼层

Re: Re:请教,关于“文件读取”

bskk: Re:请教,关于“文件读取”

fgets(string, 255, f); --- 从文件读取一行的内容
string[0] == '/' ---- 开头字符是‘/’
string[0] == '\n' --- 开头字符是‘\n’,由于是文本形式读取,也即空行判断

所以整体意思就是:
从文件中读取一行内容,且该行即不是空行,也不是以字符‘/’开头

对不起,我可以表示怀疑吗?

while ((string[0] == '/') || (string[0] == '\n'));
明明写的是“==”,所以应该是“当一行是空行或/开头时”吧?
你怎么解释为“既不是空行,也不是一字符/开头”呢?
[em5]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-24 16:35:00 | 显示全部楼层

Re:请教,关于“文件读取”

哦!
明白了!
当一行是空行或开头为/时,“再读取一行”???
如果不是空行或开头非/时,则返回!!!

谢谢!

那么,当 fgets(string, 255, f); 被运行之后,
原先的一行会被删掉吗?还是仍然留在那里?

9

主题

249

帖子

260

积分

中级会员

Rank: 3Rank: 3

积分
260
发表于 2008-1-24 19:00:00 | 显示全部楼层

Re:请教,关于“文件读取”

fgets(string, 255, f) 就是从文件里读取一行内容到string缓冲里,
读取后,文件内容当然不变了,只是文件的读取指针加了一行字节数的大小,FILE是个结构体,里面

维护者一个指针,转到头文件里就看到了

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-24 22:04:00 | 显示全部楼层

Re:请教,关于“文件读取”

文件的读取指针加了一行字节数的大小!

明白了。
怪不的 NEHE 只用这个函数就能把文件里的所有数据都读完。
我说怎么不指定读取哪一行呢,原来是自动加的啊。

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2008-1-29 22:29:00 | 显示全部楼层

Re:请教,关于“文件读取”

NEHE的编程风格就别学了,
个人觉得不怎么样。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-30 11:02:00 | 显示全部楼层

Re: Re:请教,关于“文件读取”

Devil: Re:请教,关于“文件读取”

NEHE的编程风格就别学了,
个人觉得不怎么样。

[em6]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 04:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表