在C ++中复制std :: cin

时间:2011-03-21 17:20:36

标签: c++ linux

C ++是否是文件描述符并且可以使用dup()复制?我想复制标准输入,以便使用shell中的重定向来使用一个标准输入,一个是从文件中获取所有输入后的常规输入。

3 个答案:

答案 0 :(得分:3)

没有

std :: cin是input stream。这是一个C ++概念,可能在幕后使用(部分)文件句柄实现。但是,您有权访问的是流对象及其成员。

答案 1 :(得分:3)

std::cin绑定到标准输入文件描述符,在POSIX世界中,它被定义为STDIN_FILENO,其值通常为0. std::cin只是一个特殊的std::istream到从该描述符中读取。您可以使用dup复制它 - 没问题,您根本不必使用std::cin

答案 2 :(得分:0)

您无需复制流,只需创建fstream并阅读数据需求。