0
char * extract(FILE * handle, int from, int len=0)
{
long fsize = filesize(handle);
fseek(handle, from, SEEK_SET);
len = (len > 0) ? fsize : fsize;
char * new_data = new char[len];
for(int i = 0; i < len; i++)
new_data[i] = getc(handle);
return new_data;
}
int main()
{
FILE * file1 = fopen("output.txt", "rb");
char * buffer = extract(file1, 0);
}
我想在PHP中创建一个类似于substr()的函数,但是对于二进制文件而言,它仅适用于文本,上面是我想到的。它似乎工作,但我想知道我是否使用了正确的方法。像PHP中的substr()一样工作的C++函数
很多的东西,你不应该在这里做,但最明显的问题是,你在一个时间(性能杀手)读取一个字符,您尝试overread如果'len个== 0'和'from!= 0',最后这是真正的C代码,而不是C++。 – Jon 2012-01-11 02:15:12
这个声明有什么作用? “len =(len> 0)?fsize:fsize;”无论len是否为零,它都将len设置为fsize。错误? – selbie 2012-01-11 03:57:19
应该是“远离”的,以避免大文件出现问题。 – 2012-01-11 16:37:31