如何确定未格式化输入函数读取的字符数?

How to determine the number of characters read by unformatted input functions?

std::istream(嗯,真的,std::basic_istream)上的各种未格式化输入函数,例如 read()readsome()getline()ignore() 所有 return 个流。在处理结果时,了解实际读取了多少字符通常很重要。依赖字符串中的空字符显然不适用于二进制文件或 ignore(),它甚至不涉及任何字符串,即 strlen() 之类的东西是完全不可能的。

如何确定最后一次使用 std::istream 或更一般地说 std::basic_istream 的未格式化输入操作读取的字符数?

使用basic_istream基class的gcount() member function获取上次无格式输入操作得到的字符数