首页 > 编程语言 >C++ cout的使用总结

C++ cout的使用总结

时间:2024-03-13 14:34:48浏览次数:31  
标签:总结 std main cout 输出 int C++ include

cout 是C++中 ostream 类型的对象

cout 是C++中 ostream 类型的对象,该类被封装在 < iostream > 库中,该库定义的名字都在命名空间 std 中,所以 cout 全称是 std::cout 。

1、cout支持多种数据类型,如int、float、double、char、string等,它们都会被自动转换成字符串进行输出。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a = 1;
	bool b = true;
	double d = 1.2;
	char c = 'c';
	cout<<"a = "<<a<<endl<<"b = "<<b<<endl<<"c = "<<c<<endl<<"d = "<<d<<endl;
	return 0;
}

2、cout输出的内容可以直接与文件流对象相连,实现将输出内容写入到文件中。例如:

std::cout<<std::endl;将刷新输出缓冲区,确保输出内容被立即显示。

3、避免输出时出现中文乱码问题

为了避免输出时出现中文乱码问题,可以使用std::wcout来输出宽字符类型的字符串。同时,需要在编译选项中加上-finput-charset=UTF-8来指定输入文件的编码格式。

1、cout以不同进制来输出数字,默认是10进制,其他进制输出方法如下:

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
	int i = 90;
	cout << i << endl;
	cout << dec << i << endl; //dec 是十进制(效果和默认一样)
	cout << oct << i << endl; //oct 是八进制输出
	cout << hex << i << endl; //hex 是十六进制输出(字母默认是小写字母)
	cout << setiosflags(ios::uppercase);//setiosflags(ios::uppercase) 表示将字母大写输出,包含在库 < iomanip > 中。
	cout << hex << i << endl; //hex 是十六进制输出(大写字母)
	cout << setbase(8) << i << endl;//setbase(n) 表示以 n 进制显示,包含在库 < iomanip > 中,n 只能取 8, 10, 16 三个值。
}

2、输出数字位数的控制

保留几位小数需要使用的头文件是#include <iomanip>
cout<<fixed<<setprecision(2)<<1.23456<<endl;
示例代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<fixed<<setprecision(2)<<1.23456<<endl;
	cout<<setprecision(2)<<fixed<<1.23456<<endl;
}

fixed和setprecision()先后顺序不影响输出结果

C++默认浮点数输出有效位数是 6 位(若前面整数位数大于 6 位,使用科学计数法输出),而通过以下几种方式可以更改输出精度:
1.使用 setprecision(n) 即可设置浮点数输出的有效位数
(若前面整数位数大于 n 位,使用科学计数法输出)
2.使用 setiosflags(ios::fixed) 或 fixed,表示对小数点后面数字的输出精度进行控制
所以,和 setprecision(n) 结合使用即可设置浮点数小数点后面数字的输出精度,位数不足的补零
以上均采用 “四舍五入” 的方法控制精度,三个控制符均包含在 std 命名空间中。
示例代码:

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
	double i = 123.456789;
	cout << i << endl;
	cout << setprecision(3) << i << endl;
	cout << setprecision(9) << i << endl;
	cout << setiosflags(ios::fixed);
	cout << i << endl;
	cout << fixed << setprecision(3) << i << endl;
	cout << setprecision(9) << fixed <<  i << endl;
}

3、显示小数点和正负号showpointshowpos

示例代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a=5,b=-1.2;
	cout<<a<<"\t\t"<<b<<endl;
	cout<<showpoint<<a<<"\t\t"<<b<<endl;
	cout<<showpos<<a<<"\t"<<b<<endl;
}

另外一种写法:

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a=5,b=-1.2;
	cout<<a<<"\t\t"<<b<<endl;
	cout<<setiosflags(ios::showpoint);
	cout<<a<<"\t\t"<<b<<endl;
	cout<<setiosflags(ios::showpos);
	cout<<a<<"\t"<<b<<endl;
}

输出结果

4、设置域宽和对齐方式setw()leftright

输出默认右对齐

#include<bits/stdc++.h>
using namespace std;
int main(){
	int i = 10;
	//设置域宽为3 
	cout<<setw(3)<<i<<endl;
	//设置域宽为3,左对齐
	cout<<setw(3)<<left<<i<<endl;
	//设置域宽为3,右对齐 
	cout<<setw(3)<<right<<i<<endl;
}

输出结果:

其他方式:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int i = 10;
	//设置域宽为3 
	cout<<setw(3)<<i<<endl;
	//设置域宽为3,左对齐
	cout<<setiosflags(ios::left);
	cout<<setw(3)<<i<<endl;
	//设置域宽为3,右对齐 
	cout<<setiosflags(ios::right);
	cout<<setw(3)<<i<<endl;
}

5、设置填充字符setfill()

示例代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int hour = 14,minute = 18,second = 10;
	cout<<setw(2)<<setfill('0')<<hour<<":"<<minute<<":"<<second;
	return 0;
}

运行效果:

控制符 作用
setbase(n) 以n进制方式输出(n=8,10,16)
setfill(ch) 设置字符填充,ch可以是字符常量或字符变量
setprecision(n) 设置输出有效位数为n位
setw(n) 设置字符宽度为n位,只对后一个有影响
setiosflags(ios::uppercase) 以大写字母显示
setiosflags(ios::fixed) 实现对小数点后的数字的控制
setiosflags(ios::scientific) 以科学计数法显示
setiosflags(ios::showpoint) 强制显示小数点
setiosflags(ios::showpos) 强制显示正号
setiosflags(ios::left) 设置输出左对齐
setiosflags(ios::right) 设置输出右对齐
resetiosflags(…) 终止括号中的输出格式

标签:总结,std,main,cout,输出,int,C++,include
From: https://www.cnblogs.com/Andre/p/18070551

相关文章

  • 十五届蓝桥青少C++组3月评测2024年3月中高级
    STEMA考试C++中高级试卷(24年3月10日)一、选择题(50分)1:(110010)2+(c3)16的结果是()。*选择题严禁使用程序验证,选择题不答或答错都不扣分A.(240)10 B.(11110101)2 C.(366)8 D.(f6)16 备注:此题目下标代表进制,因不支持md格式。 参考答案:B2:表达式1000/3的结果......
  • 关于JSON转换总结
    关于JSON转换总结前言JSON是JavaScript数据类型中的一个子集,目前主流的浏览器都使用了通用的JavaScript引擎组件,所以在解析JSON格式时具有良好的兼容性。这便是“JavaScriptObjectNotation”(缩写为JSON)诞生的由来。一些常用的JSON解析依赖库有阿里的fastjson和国外......
  • C++面试100问!(三)
    前言    本次专题旨在回顾C++的一些基础,方便实时总结。C++源文件从文本到可执行文件经历的过程?         预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。        编译阶段:将经过预处理后的预编译文......
  • [C++]C++函数指针总结
    指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一:int*......
  • [C++]c++ 在项目cpp文件中直接用#pragma comment语句引入,无需配置属性表
    使用语句添加引入库的好处就是无需配置多个属性表,不管是debug模式还是release模式,不管是64位还是32位,几行代码通吃。相对路径:#ifdef_M_X64#pragmacomment(lib,"../../../VC++/DVPCamera64.lib")#else#pragmacomment(lib,"../../../VC++/DVPCamera32.lib")#endif绝......
  • MongoDB学习总结
    一、数据库基础命令1、关于database的基础命令查看所有的数据库:showdbs/showdatabases切换数据库:usedb_name查看当前的数据库:db删除当前的数据库:db.dropDatabase()2、关于集合的基础命令不手动创建集合:向不存在的集合中第一次加入数据时,集合会被创建出来手动创建集合......
  • C++图书管理案例
    Book类存储一本图书信息。classBook{public:stringbookId;stringtitle;floatprice;//构造函数Book(stringmyBookId,stringmyTitle,floatmyPrice){bookId=myBookId;title=myTitle;price=myPrice;......
  • c++函数SetConsoleTextAttribute
    前言正文1.作用:2.函数格式(重点):3.参数(重点):前言实用(真的)正文1.作用:更改cmd的背景色与字体颜色2.函数格式(重点):SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10进制参数);3.参数(重点): ......
  • SpringBoot Controller接收参数的常用方式总结
    原生的HttpServletRequest可和其他注解配合使用,是内置对象,是整个请求可获取到所有的数据请求路径参数@PathVariable请求路径参数例如url/{id},则获取id参数。@PathVariabel(name="xx")@RequestParam例如url?name=xxx。@RequestParam(name="xx")Body参数@Req......
  • 一个月内通过软考高级系统架构设计师,如何复习?进度安排、备考资料买哪些?附22条备考经验
    前言        楼主2022年下半年参加计算机软考,高级系统架构师的考试;复习时间:2个月(在职复习,真正有效时间<1个月);以下是楼主分数情况:综合知识45分;案例分析56分;论文58分。论文和案例均高分通过。    本文分享楼主复习高级系统架构师的考试的经验,备考建议,分享复......