C 语言中有没有类似 Java 中的 ByteArrayInputStream 的功能

2020-07-07 11:02:42 +08:00
 tommy990607
我现在的需求是从文件里读取了一串 base64 编码的字符串,然后解码成了 uint8_t 类型的字节数组,然后我想用类似 fread 这样的函数从头开始读取字节数组里面的内容,请问该怎么实现?
2203 次点击
所在节点    C
7 条回复
pursuer
2020-07-07 11:08:20 +08:00
fmemopen 但是 windows 上可能没有,可以自己实现一个类似的,加个指针读取并移动指针应该就行了吧
GeruzoniAnsasu
2020-07-07 11:13:26 +08:00
C 不是一个 OO 语言,所以不存在“Array 对象”、“Stream 对象”。“流”是一个典型的 OO 概念,在传统 C 里是没有这种抽象的。

C 的思维: 数据都在内存里了,都能随机访问了,还套都一层函数干啥,吃饱了撑着?
tommy990607
2020-07-07 11:13:38 +08:00
@pursuer 谢谢谢谢,我就是 Linux 编程,这个函数很管用
tommy990607
2020-07-07 11:16:45 +08:00
@GeruzoniAnsasu 因为这样的话我就得自己实现将字节转换成数字或其他类型什么的,比较麻烦,因为我用习惯了 fread 哈哈
GeruzoniAnsasu
2020-07-07 11:27:26 +08:00
@tommy990607 本来就是这样的,每个目标用一个函数来实现,这是所谓的“面向过程”,关注实现目标需要经过哪些过程(函数),然后实现这个路径上需要的东西
xdeng
2020-07-07 11:30:44 +08:00
都已经是 uint8_t 类型的字节数组 了 为啥还要 fopen fread 这些操作, 直接 p + index 操作啊,多爽快啊。
Chenamy2017
2020-07-07 13:37:11 +08:00
6#正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX