下次当您为控制台输出的格式而苦恼时,请参阅本文及其备忘单。我写文章主要是为了记录自己。我在编程时非常健忘,所以我经常记下我使用的编程语言中有用的代码片段、特殊功能和常见错误。这篇文章正是我最初的想法,因为它涵盖了从C++控制台格式化打印时的常见用例。与往常一样,本文附带了大量示例。除非另有说明,否则代码片段中显示的所有类型和类都是std命名空间的一部分。所以当你阅读这段代码时,你必须在类型和类前面加上usingnamespacestd;的前缀。当然,示例代码也可以在GitHub上找到。面向对象的流如果您曾经用C++编程过,那么您肯定用过cout。当您包含时,ostream类型的cout对象进入作用域。这篇文章重点介绍cout,它可以让您打印到控制台,但此处描述的一般格式设置适用于类型为ostream的所有流对象。ostream对象是basic_ostream的一个实例,它的模板参数是char类型。标头是包含层次结构的一部分,并包含常见类型的前向声明。basic_ostream类继承自basic_ios,而basic_ios又继承自ios_base。在cppreference.com上,您可以找到显示不同类之间关系的类图。ios_base类是所有I/O流类的基类。basic_ios类是一个模板类,对常用字符类型进行模板特化,称为ios。因此,当您在标准I/O的上下文中阅读ios时,它是basic_ios的char类型的模板特化。格式化流通常,基于ostream的流具有三种格式化方法。使用ios_base提供的格式标志。头文件和中定义的流修改函数。通过调用<<运算符的特定重载。所有这些方法都有其优点和缺点,这通常取决于使用哪种方法的情况。下面显示的示例混合使用了所有这些方法。右对齐默认情况下,cout占用的空间与要打印的数据所需的空间一样多。为了使这种右对齐输出起作用,您必须定义一行允许占据的最大宽度。为此,我使用格式标志。右对齐输出的徽标和宽度调整仅适用于其后的行。cout.setf(ios::right,ios::adjustfield);cout.width(50);cout<<"此文本右对齐"<>>HereIam<<<";操作系统<>>我在这里<<<我有重要的事情要说!!!!!!结语下次当您为控制台输出格式而苦恼时,希望您能记住这篇文章及其备忘单。在C++应用程序中,cout是printf的新邻居。虽然使用printf仍然有效,但我可能总是更喜欢使用cout。特别是与中定义的修改函数结合使用时,这会产生漂亮、可读的代码。