使用ios::binary从标准输入读取数据

6

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


如果你了解自己的平台,可以尝试使用 ifstream 重新打开 stdin(我不能以可移植的方式实现),然后使用 rdbuf 将其连接到 std::cin。(/dev/stdin 应该适用于 -ixes) - Kos
请参见https://dev59.com/iGsz5IYBdhLWcg3w5ME0。 - Kos
还可以参考使用std::freopen的讨论(但它看起来有点hacky)。如果有人能提供一个包含BSD、Linux、OS X、Solaris和Windows示例的规范答案就太好了。 - jww
1个回答

2
你可以使用get方法从std::cin中读取数据。该方法专门用于读取未格式化的数据(详见文档)。

1
我认为问题在于std::cin以文本模式打开。由于文本模式,可能会出现一些不必要的翻译。 - jww

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接