编程语言
首页 > 编程语言> > C++基本输出控制

C++基本输出控制

作者:互联网

标准输出流(cout)

C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。
C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。

头文件函数及描述
<iostream>该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。
<iomanip>该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务
<fstream>该文件为用户控制的文件处理声明服务。

如何利用这些文件控制输出

#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;

int main(){
    double num = 1234.56789; 
    cout << "1234.56789" << endl;
    cout << num << endl;
    cout << "after setting :" << endl;
	
    return 0;
}

运行截图:

在这里插入图片描述

结论: cout 会对浮点数自动的四舍五入保留两位有效小数

int main(){
    double num = 1234.56789; 
    cout << "1234.56789" << endl;
    cout << num << endl;
    cout << "after setting :" << endl;
    cout << setiosflags(ios::fixed)<<num << endl;
    return 0;
}

运行截图:
在这里插入图片描述
与之相当的是 cout.setf()

    cout.setf(ios::fixed);
    cout << num << endl;

运行截图:
在这里插入图片描述

利用cout.precious()如何用来设置有效位数;

int main(){
    double num = 1234.56789; 
    cout << "1234.56789" << endl;
    cout << num << endl;
    cout << "after setting :" << endl;
    cout.precision(3);
    cout << num << endl;
    return 0;
}

运行截图:
在这里插入图片描述

cout.precision(7);
cout << num << endl;

运行截图:
在这里插入图片描述
可以发现单独的使用cout.precision() 可以控制输出的有效数字;

    cout << setprecision(3)<<num << endl;

运行截图:
在这里插入图片描述

精确到小数点后某位.

#include <iostream>
#include <iomanip>
using namespace std;

int main(){
    double num = 1234.56789; 
    cout << "1234.56789" << endl;
    cout << num << endl;
    cout << "after setting :" << endl;
    
    cout.precision(3);
    cout.setf(ios::fixed);
    cout << num << endl;
    return 0;
}

运行截图:
在这里插入图片描述

    cout.unsetf(ios::fixed);
    cout.precision(-1);
    cout << "after unsetf :" << endl;
    cout << num << endl;

运行截图 :
在这里插入图片描述

当然关于cout的输出控制还有许多,这里不一 一举例,大致用法相同,其中

cout.setf 跟 setiosflags 功能一样,cout.precision 跟 setprecision 功能一样,cout.unsetf 跟 resetiosflags 功能一致;

cout.setf(ios::fixed)功能
boolalpha可以使用单词”true”和”false”进行输入/输出的布尔值.
oct用八进制格式显示数值.
dec用十进制格式显示数值.
hex用十六进制格式显示数值.
left输出调整为左对齐.
right输出调整为右对齐.
scientific用科学记数法显示浮点数.
fixed用正常的记数方法显示浮点数(与科学计数法相对应).
showbase输出时显示所有数值的基数.
showpoint显示小数点和额外的零,即使不需要.
showpos在非负数值前面显示”+(正号)”.
skipws当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines).
unitbuf在每次插入以后,清空缓冲区.
internal将填充字符回到符号和数值之间.
uppercase以大写的形式显示科学记数法中的”e”和十六进制格式的”x”.
setiosflags功能
setiosflags(ios::fixed)固定的浮点显示
setiosflags(ios::scientific)指数表示
setiosflags(ios::left)左对齐
setiosflags(ios::right)右对齐
setiosflags(ios::skipws)忽略前导空白
setiosflags(ios::uppercase)16进制数大写输出
setiosflags(ios::lowercase)16进制小写输出
setiosflags(ios::showpoint)强制显示小数点
setiosflags(ios::showpos)强制显示符号

求点赞, 求关注, 让我们一起进步, CSDN的伙伴们加油, 奥力给 !

标签:输出,截图,cout,setiosflags,ios,C++,控制,fixed
来源: https://blog.csdn.net/OnlyFeiger/article/details/113835613