我已经读过可以通过更改缓冲区来读取ifstream的cin,但它是否安全?这样做有什么缺点:
file.ios::rdbuf(cin.rdbuf());
感谢
C++: UNIX - defaulting ifstream variable to standard input
iostream - C++: assign cin to an ifstream variable? - Stack Overflow
答案 0 :(得分:1)
是的,这是安全的,这就是rdbuf
函数存在的全部原因。
这也是iostreams狗慢的主要原因之一。 ifstream
对象不一定附加到文件。 stringstream
对象可能附加到文件。大量的多态性,大量的虚拟调用,没有优化的机会。
但无论你是否重新绑定流,你都要付出代价。