一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1654|回复: 3
收起左侧

F, G家题

[复制链接] |试试Instant~ |关注本帖
wy16119 发表于 2014-7-11 07:20:58 | 显示全部楼层 |阅读模式

2014(1-3月) 码农类 本科 全职@ - 内推 - Onsite |Other

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
有道题,F家,G家都问过
[size=14.399999618530273px]Given API:
[size=14.399999618530273px]int Read4096(char* buf);
[size=14.399999618530273px]It reads data from a file and records the position so that the next time when it is called it read the next 4k chars (or the rest of the file, whichever is smaller) from the file.
[size=14.399999618530273px]The return is the number of chars read.

[size=14.399999618530273px]Todo: Use above API to Implement API
[size=14.399999618530273px]"int Read(char* buf, int n)" which reads any number of chars from the file.
[size=14.399999618530273px]

有什么好的思路和解法吗?

本帖被以下淘专辑推荐:

北美农民 发表于 2014-7-11 07:28:00 | 显示全部楼层
Cannot type CN in company.
.1point3acres缃
A naive way is to use a local buffer array of fixed size to store the content of Read4096 api. And you also need COUNT variable to keep track of how many chars left.
回复 支持 反对

使用道具 举报

notbad 发表于 2014-7-11 09:28:34 | 显示全部楼层
在Read(char *buf, int n)里面使用个static变量,static char *buffer[3098],还需要记录一下这个buffer已经使用的长度。用于存放已经读的但是还没有返回给用户的数据。每次read被调用的时候先将这部分数据返回,如果不够再调用read4098读。
回复 支持 反对

使用道具 举报

 楼主| wy16119 发表于 2014-7-11 23:43:43 | 显示全部楼层
notbad 发表于 2014-7-11 09:28
在Read(char *buf, int n)里面使用个static变量,static char *buffer[3098],还需要记录一下这个buffer已经 ...

嗯 说的对
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 04:42

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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