我正在写一个输入函数:
void input(istream& ins)
以及输出功能:
void output(ostream& outs)
我的问题是在这两个函数中,我想要一个if语句来确定我是从文件写入还是从键盘写入。这是因为在我的输入内部,如果数据不是来自文件,我也使用cout语句的输入。
我希望我的输出文件确定它是写入文件还是写入屏幕。 基本上,如果我想将流传递给函数,我只想知道如何检查从/到文件的写入。
答案 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
}