4
A
回答
1
std::cout
:正常输出(控制台输出)
std::cerr
:错误输出(控制台错误)
谷歌是你的朋友:)
6
很多操作系统让你从/重定向输入和输出文件。当最终用户将您的输出重定向到文件时,最终用户看不到任何您写入到cout
;如果你希望你的输出被最终用户看到,你需要一个单独的流,你可以为它们打印消息。
假设您正在编写一个从标准输入逐行读取的程序,并将这些行按排序顺序写入标准输出。比方说,你的程序需要一个命令行参数来说明输出是否需要按升序或降序排序。如果最终用户为该参数传递了无效值,则需要将消息"Invalid flag"
输出到控制台。打印到cout
将是不正确的,因为cout
可能被重定向到一个文件,所以用户不会看到它。在这种情况下的正确解决方案是将此消息写入cerr
。
6
很多时候你的程序的用户只关心结果,因为这些被打印到stdout,举例来说,如果你使用UNIX命令的猫,如:
$ cat file.txt
你希望文件。 txt内容出现在stdout上。然而,如果在猫的执行过程中发生任何事情(严格地说从理论上讲,我从来没有发生过任何事情),你会期望它会变得更加直接,因此,作为一个用户,你仍然能够分开这两个,例如:
$ cat file.txt 1>result.txt 2>stderr.txt
假设我想收集的多个文件的内容,我下面
$ cat *.java 1>all_files_conent.java 2>errors.txt
在任何情况下的文件是无法访问(例如,因为权限),ERRORS.TXT将会有适当的信息:
cat: Controller.java: Permission denied
但all_files_content.java的内容尽可能正确。因此,如果消息是程序的实际产品,则应使用cout,如果它只是状态消息,则使用cerr。当然,如果控制台发生的只是副产品,那么所有这些都不重要。但是,您可能仍希望允许用户将两者分开,如上例所示。
相关问题
- 1. 为什么CERR刷新COUT
- 2. cout,cin,cerr和clog中的“c”是什么意思?
- 3. 什么时候使用以及C++中clog和cerr之间的区别
- 4. 什么时候和为什么我会在C++中使用abs
- 5. 什么时候在C++中使用“declare”?
- 6. 什么时候使用__proto__和什么时候使用原型
- 7. 什么时候使用Ruby和什么时候使用PHP
- 8. 什么时候使用for-each和什么时候在xslt中使用apply-templates?
- 9. 什么时候使用goto * expr;在C?
- 10. 什么是“cerr”和“stderr”?
- 11. cout << cout和cout <<&cout在C++中有什么区别?
- 12. 目标C什么时候使用alloc和什么时候不到
- 13. 什么时候应该out和ref参数在C#中使用?
- 14. 什么时候在C#中使用get和set属性?
- 15. 什么时候在C中使用ntohs和ntohl?
- 16. 什么时候应该使用AWS,什么时候不使用
- 17. intn_t什么时候使用它,什么时候不使用
- 18. 什么时候使用信号和插槽,什么时候不使用
- 19. 什么时候使用适配器和什么时候使用inflater
- 20. 什么时候在C#中使用Properties.Settings.Default C#
- 21. 什么时候在C++中使用extern“C”?
- 22. 什么时候在Django中使用“AbstractBaseUser”?
- 23. 什么时候在.NET中使用GC.Collect()?
- 24. 什么时候在mysql中使用OPTIMIZE
- 25. 什么时候在hibernate中使用Criteria.ALIAS_TO_ENTITY_MAP?
- 26. 什么时候在Java中使用“this”
- 27. 在C#中,什么时候应该使用一个结构,什么时候应该使用一个类?
- 28. 你什么时候使用getGraphObject和getGraphEdge
- 29. 什么时候使用express.use,express.get和express.post
- 30. 什么时候使用.val()和.innerHTML?
你见过http://stackoverflow.com/questions/5058716/shall-i-use-cerr吗? – matsjoyce 2014-10-04 09:30:44
该程序的预期输出应该去std :: cout。意想不到的警告或错误信息会破坏程序的输出,应该转到std :: cerr。您通常不希望将程序产生的输出与信息报告混合在一起。 – Galik 2014-10-04 09:39:32
可能的重复[cout,cerr,cock中iostream头部的clog有什么区别?何时使用哪一个?](https://stackoverflow.com/questions/16772842/what-is-the-difference-between-cout-cerr-clog-of-iostream-header-in-c-when) – roottraveller 2017-09-12 06:39:23