当使用c风格的i/o编程时,我有时会使用freopen()重新打开stdin进行测试,这样我就不必一次又一次地重新输入输入。我想知道是否有用于c++ i/o流的等价物。此外,我知道我可以使用管道在命令行/终端/其他地方重定向它,但我想知道是否有一种方法可以在我的代码中做到这一点(因为正如你所看到的,我对cl/t/w不是很了解)。
发布于 2011-03-10 17:26:47
freopen还可以与cin和cout一起使用。不需要搜索新的东西。
freopen("input.txt", "r", stdin); // redirects standard input
freopen("output.txt", "w", stdout); // redirects standard output
int x;
cin >> x; // reads from input.txt
cout << x << endl; // writes to output.txt编辑:来自C++标准27.3.1的:
对象cin控制来自与
<cstdio>中声明的对象stdin相关联的流缓冲器的输入。
所以根据标准,如果我们重定向stdin,它也会重定向cin。对于cout,反之亦然。
https://stackoverflow.com/questions/5257509
复制相似问题