1 Star 0 Fork 86

mydecember/pythonvm

forked from hinus/pythonvm 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
bufferedInputStream.hpp 1.20 KB
一键复制 编辑 原始数据 按行查看 历史
hinus 提交于 2018-10-08 22:43 +08:00 . Summary: double & sin, sqrt
#ifndef BUFFERED_INPUT_STREAM_HPP
#define BUFFERED_INPUT_STREAM_HPP
#include <stdio.h>
#define BUFFER_LEN 256
class BufferedInputStream {
private:
FILE* fp;
char szBuffer[BUFFER_LEN];
unsigned short index;
public:
BufferedInputStream(char const* filename) {
fp = fopen(filename, "rb");
fread(szBuffer, BUFFER_LEN * sizeof(char), 1, fp);
index = 0;
}
~BufferedInputStream() {
close();
}
char read() {
if (index < BUFFER_LEN)
return szBuffer[index++];
else {
index = 0;
fread(szBuffer, BUFFER_LEN * sizeof(char), 1, fp);
return szBuffer[index++];
}
}
int read_int() {
int b1 = read() & 0xff;
int b2 = read() & 0xff;
int b3 = read() & 0xff;
int b4 = read() & 0xff;
return b4 << 24 | b3 << 16 | b2 << 8 | b1;
}
double read_double() {
char t[8];
for (int i = 0; i < 8; i++) {
t[i] = read();
}
return *(double *)t;
}
void unread() {
index--;
}
void close() {
if (fp != NULL) {
fclose(fp);
fp = NULL;
}
}
};
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/libown/pythonvm.git
git@gitee.com:libown/pythonvm.git
libown
pythonvm
pythonvm
master

搜索帮助