大佬教程收集整理的这篇文章主要介绍了c – std :: cout的重定向范围,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
std::cout << "Hello" << std::endl;
我有以下程序:
// Redirection.cpp #include <iostream> #include <fstream> int main(int argc,char **argv) { if(argc == 2){ std::cout << "Output file supplied,redirecTing to output.txt" << std::endl; std::ofstream out("C:\\Avner\\HUJI\\CPP\\ex2\\output.txt"); std::cout.rdbuf(out.rdbuf()); std::cout << "This file contains output of Redirection.cpp" << std::endl; } std::cout << "This should be displayed in console or in the output file,if supplied" << std::endl; return 0; }
我期待output.txt读取:
This file contains output of Redirection.cpp This should be displayed in console or in the output file,if supplied
但它只读取:
This file contains output of Redirection.cpp
我认为我使用的重定向仅适用于该范围,而不适用于任何外部范围.
我怎样才能解决这个问题?我需要的行为是,只有在提供输出文件时,所有打印都将写入该文件而不是控制台.
感谢一堆免费的帮助爱和支持!
int main(int argc,char *argv[]) { std::ofstream out; if (argc == 2) { std::cout << "Output file supplied,redirecTing to output.txt" << std::endl; out.open("C:\\Avner\\HUJI\\CPP\\ex2\\output.txt"); std::cout.rdbuf(out.rdbuf()); std::cout << "This file contains output of Redirection.cpp" << std::endl; } std::cout << "This should be displayed in console or in the output file,if supplied" << std::endl; if (out.is_open()) { out.close(); } return 0; }
以上是大佬教程为你收集整理的c – std :: cout的重定向范围全部内容,希望文章能够帮你解决c – std :: cout的重定向范围所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。