好吧,主题基本上说明了一切。
我有一个命令行实用程序,可以使用管道或I / O重定向来交互使用或在脚本中使用。我使用cin和cout用于I / O,我想在结束时,如果输出控制台写一个额外的EOL,使用户提示将从下一行开始。在脚本中这将是有害的。
cin
cout
我可以假设cin == 0, cout == 1吗?我知道没有干净的方法来获取流的文件描述符。还是?
cin == 0, cout == 1
可以使用rdbuf()在程序中更改std :: cin和std :: cout的目的地。如果您不这样做,则可以假定cin = 0,cout = 1且clog和cerr都= 2可能是非常安全的,因为C ++标准规定它们与C stdin,stdout和stderr同步,并且每个都有在启动时POSIX这些文件描述符。