格式化输出输入一二事

前言

输出输入流可以通过各种方式设置多种多样的格式化操作,给输出输入提供多种选项。

每种格式化将输出将通过两种方式进行描述,一种是操纵符,一种是成员函数。操作符一般在流中插入以进行格式化输出,成员函数则是通过对象调用起作用。

注意,流操纵符一般都在iomanip.h中,而成员函数一般都在iostream.h中。

进制相关

整型数字的显示格式

操纵符

设置进制

int n = 100;
cout << dec << n << endl;    //十进制
cout << oct << n << endl;    //八进制
cout << hex << n << endl;    //十六进制
cout << setbase(10) << n << endl;        //通过参数来设置进制
100
144
64
100
  1. 设置之后会一直起作用,具有黏性

显示基数

cout << showbase;        //调用显示基数
int n = 100;
cout << dec << n << endl;
cout << oct << n << endl;
cout << hex << n << endl;
cout << noshowbase;     //重置设定
cout << hex << n << endl;
100
0144
0x64
64

浮点精度

浮点数显示的精度,一般默认是6,可设置

操纵符

使用

const int PI = 3.14159;
for (int i = 0; i < 6; i++)
    cout << setprecision(i) << PI << endl;        //设定显示精度

输出

3
3.1
3.14
3.141
3.1415
3.14159

使用事项

  1. 会一直影响后面的输出直到下一次设置精度操作

成员函数

使用

const int PI = 3.14159;
for (int i = 0; i < 6; i++){
    cout.precision(i);
    cout << PI << endl;
}

输出

3
3.1
3.14
3.141
3.1415
3.14159

使用事项

  1. 会一直影响后面的输出直到下一次设置精度操作

域宽

域宽也就是输出值所占的字符数或者是可以输入的最大字符数,如果输出的字符不够在左边用空格(默认)来凑

操纵符

使用

int widthValue = 4;
char sentence[10];

while (cin >> setw(5) >> sentence) {            //设定每次输入最多5个字符
	cout << setw(widthValue++) << sentence << endl;
}

输入

This is a test of the width member function

输出

This
   is
     a
   test
      of
      the
      widt
          h
        memb
           er
          func
           tion

使用事项

  1. 仅能影响下一次的输入或输出,不具备黏性
  2. 注意是默认的对齐方式,即右对齐左边填充字符

成员函数

使用

int widthValue = 4;
char sentence[10];

cin.width(5);                //设置输入的宽度,即一次最多读入多少字符

while (cin >> sentence) {
    cout.width(widthValue++);         //设置输出的宽度
    cout << sentence << endl;
    cin.width(5);                     //需要注意的是,因为域宽的设置是不具备黏性的,所以需要一直设置
}

输入

This is a test of the width member function

输出

This
   is
     a
   test
      of
      the
      widt
          h
        memb
           er
          func
           tion

使用事项

  1. 仅能影响下一次的输入或输出,不具备黏性

对齐方式

输出字符的对齐方式

操纵符

使用

cout << left << 输出内容;
cout << right << 输出内容;

使用事项

  1. 具有黏性
  2. 为了能看出效果一般和setw搭配使用
  3. left是使域左对齐并在右边填充填充字符,right是使域右对齐并在左边填充字符

填充字符的设置

指定对齐域的填充字符,如果没有被指定,则使用空格符填充

操纵符

使用

cout << setfill(char c) << 输出内容;

使用事项

  1. 具有黏性
  2. 一般和设置域宽和对齐方式一起使用

成员函数

使用

cout.fill(char c);
cout << 输出内容;

使用事项

  1. 具有黏性
  2. 一般和设置域宽和对齐方式一起使用

其他常见操纵符

流操纵符 适用流 描述
skipws 输入流 跳过输入流的空白字符,使用流操纵符noskipws重置设定
showpoint 输出流 指明浮点数必须显示小数点即使全部是0,同长使用fixed流操纵符来确保小数点右边数组的位数,可以使用noshowpoint重置
showpos 输出流 在正数前显示+,可以使用noshowpos重置
fixed 输出流 以定点小数的形式显示浮点数,并指定小数点右边的位数
scientific 输出流 以科学计数法的输出显示浮点数
uppercase 输出流 指明当显示十六进制数时使用大写字母,可以使用nouppercase重置

原文地址:https://www.cnblogs.com/Za-Ya-Hoo/p/12682906.html

时间: 2024-08-29 07:22:58

格式化输出输入一二事的相关文章

fmt包的格式化输出输入

  fmt包的格式化输出输入 原文地址:https://www.cnblogs.com/qhdsavoki/p/9457853.html

格式化输出输入

你看到的这个文章来自于http://www.cnblogs.com/ayanmw 头段时间我的代码,有一个 unsigned char,我需要从sscanf 中读取字符串为这个值.但是一般char 是用%c的,我是要值得. 所以我使用了%d %u来读,结果报警告: unsigned char a; sscanf("15","%u",&a); warning: format '%u' expects type 'unsigned int*', but argu

While循环,格式化输出,算术运算符,改py文件名字

一.While循环 while来打印每个元素 s = "风扇哥门神哥,邓生" i = 0 while i <len(s): print(s[i]) i+=1 while循环的感悟:while循环多用在交互程序里,做判断:而for循环多是用来获取某个类型集合(list,str,tupe,set...)里面的值 content  #内容的意思,是变量名count    #计数的意思,是变量名 break #彻底的结束循环 continue #停止本次循环,继续执行下次循环 break

go语言基础之格式化输出

1.fmt包的格式化输出输入 格式说明 格式 含义 %% 一个%字面量 %b 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 %c 字符型.可以把输入的数字按照ASCII码相应转换为对应的字符 %d 一个十进制数值(基数为10) %e 以科学记数法e表示的浮点数或者复数值 %E 以科学记数法E表示的浮点数或者复数值 %f 以标准记数法表示的浮点数或者复数值 %g 以%e或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 %G 以%E或者%f表示的浮

python 3 用户输入和格式化输出

# -*- coding:utf-8 -*- #用户输入 && 格式化输出 #getpass 模块是内置的,可以将输入的内容隐藏 import getpass username = input("username:") password = input("password:") age = int (input("age:")) job = input("job:") #print(type(age),type

python学习笔记(注释、用户输入、格式化输出)

注释 单行:# 多行:上下各用3个连续单引号或双引号 3个引号除了多行注释,还可以打印多行 举例: msg = ''' name = "Alex Li" name2 = name print ("My name is",name,name2) ''' # print(msg) 运行结果第二个print就是打印3行字符串. 如果单行,用引号即可:msg = "Alex Li" python中,单引号和双引号相同,除了单套双或双套单. 例: msg

_02_从键盘读入用户的输入,格式化输出hello+用户输入的信息

Hello.cs文件 using System; //引用了一个叫System的名空间 class easyInput //类的名字与文件名(Hello.cs)不同也 无所谓 { public static void Main() { string strName; //声明一个string类型的值变量 Console.Write("please input your name:"); //输出一句话,但不换行 strName = Console.ReadLine(); //从键盘读入

用户输入及格式化输出

输入用户名和密码: username=input("username:")password=input("password:")print(username,password) 格式化输出三种形式:形式一(不用): name=input("name:")age=input("age:")job=input("job:")salary=input("salary:") iofo1='''-

python注释、输入格式化输出输出及数据类型

一.python的注释 1.python中的注释 注释:对代码的解释或者评论,注释仅仅是给人看的,python本身不识别. 2.注释的分类 2.1. 单行注释 # 2.2. 三引号(可以是三个单也可以是三个双) 二.输入 1.python3中的输入 关键字:input() python3中的input获取的用户输入统一全部存成字符串类型 1.2.python2中的输入 1.2.1.input() 需要你人为的声明input输入的是什么数据类型 错误示范: 正确示范:   1.2.2.raw_in