如何确定cin是键盘还是文件

时间:2013-10-27 22:39:25

标签: c++ istream ostream

我正在写一个输入函数:

void input(istream& ins)

以及输出功能:

void output(ostream& outs)

我的问题是在这两个函数中,我想要一个if语句来确定我是从文件写入还是从键盘写入。这是因为在我的输入内部,如果数据不是来自文件,我也使用cout语句的输入。

我希望我的输出文件确定它是写入文件还是写入屏幕。 基本上,如果我想将流传递给函数,我只想知道如何检查从/到文件的写入。

1 个答案:

答案 0 :(得分:4)

您可以进行简单的地址比较:

if(&ins == &cin){
//then you using cin, since there is only one cin object
}else{
//other istream
}

同样的cout ......

if(&outs == &cout || &outs == &cerr){
//then you using standard outputs: cout or cerr
}else{
//other ostream
}