我正在编写一个小程序,它以 16 个字节为一组从二进制文件中的文件中读取字节(请不要问为什么),修改它们,然后将它们写入另一个文件。
该fstream::read
函数读入一个char *
缓冲区,我最初将其传递给一个如下所示的函数:
char* modify (char block[16], std::string key)
修改完成block
,然后返回。在漫游 SO 的帖子时,我意识到使用std::vector<char>
. 我的下一个担心是如何将 a 转换char *
为std::vector<char>
. 再一次,SO给了我一个答案。
但现在我想知道的是:如果使用std::vector<char>
而不是这样一个好主意char*
,那么为什么要使用这些fstream
函数char*
呢?
char*
另外,首先将fromfstream
转换为好主意std::vector<char>
吗?
编辑:我现在意识到,因为fstream::read
用于直接将数据写入对象,char *
是必要的。我现在必须修改我的问题。首先,为什么没有重载函数fstream::read
?其次,在我写的程序中,哪个是更好的选择?