C++ 使用ios::binary从标准中读取

C++ 使用ios::binary从标准中读取,c++,stream,binary,stdin,cin,C++,Stream,Binary,Stdin,Cin,我试图从标准输入中读取,并通过其十进制值区分每个字符。据我所知,换行符(10)和回车符(13)将被解释为相同的字符。我想区分两者。我知道如果我正在读取一个文件,我可以使用ios::binary参数打开它。但是如果我是从标准输入中读取呢?您可以使用get从std::cin中读取。此方法是专门为读取未格式化数据而设计的()如果您了解您的平台,您可以尝试使用ifstream重新打开stdin(这一点我不能以便携方式进行,/dev/stdin应该适用于-ixes),然后使用rdbuf将其连接到std::

我试图从标准输入中读取,并通过其十进制值区分每个字符。据我所知,换行符(10)和回车符(13)将被解释为相同的字符。我想区分两者。我知道如果我正在读取一个文件,我可以使用ios::binary参数打开它。但是如果我是从标准输入中读取呢?

您可以使用get从std::cin中读取。此方法是专门为读取未格式化数据而设计的()

如果您了解您的平台,您可以尝试使用
ifstream
重新打开
stdin
(这一点我不能以便携方式进行,
/dev/stdin
应该适用于-ixes),然后使用
rdbuf
将其连接到
std::cin
中。另请参见使用的讨论(但它看起来有点粗糙)。如果有人提供一个规范的答案,并举例说明BSD、Linux、OS X、Solaris和Windows,那就太好了。我认为问题在于,
std::cin
是以文本模式打开的。由于文本模式,可能存在一些不需要的翻译。