【发布时间】:2011-04-22 09:43:38
【问题描述】:
std::istream 有原型istream& read (char* s, streamsize n),实际读取的字节数应该通过调用istream::gcount() 来获得,istream 的有效性也可以从ios::good 中得知。
我正在与我的一位同事讨论我试图编写的另一个流类的实现,我说我可能会遵循这种设计;但他说,与其让用户每次都调用 gcount,不如阅读 istream& read (char* s, streamsize n, size_t &bytes_read) 这样的原型,这样它就可以在一次调用中结束,而前者更笨拙。我无法为std 的设计选择辩护。 istream::read 背后的真正原因是什么?
【问题讨论】:
-
你的意思是
size_t& bytes_written?而且,它可能应该是streamsize& bytes_written(或者可能是chars_read)。 -
@James:是的,谢谢! here 字节和字符是同义词,因为
sizeof是相同的 :)
标签: c++ iostream istream c++-standard-library