cin对象如何根据用户需要将字符转换为不同的类型?

How does cin object converts characters to different types as user needes?

std::cin 对象作为 basic_istream<char> (istream) 的实例时如何处理不同的类型?

class std::basic_istream<CharT, Traits>CharT 类型的字符输入流建模。它提供对该输入流的相对低级和相对高级的访问。例如,您可以调用 std::cin.get() 以便从输入流中检索下一个字符;这将始终 return CharT,因为这是流中字符的基础类型。但是,basic_istream 还提供了 格式化输入函数 ,其目的是将该字符流解释为某种类型的编码,可能是 intstd::basic_string<CharT, Traits>,或者别的什么。因此,虽然流不由 int 组成,但有一个 operator>> 通过从 char 流中连续读取数字并将它们解释为整数的基数 10 表示。 operator>> 函数被重载,因此它可以用来提取各种不同的类型。