C++输入输出方式总结

标准输入流(cin)

预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符 >> 结合使用的,流提取运算符 >> 在一个语句中可以多次使用。

#include <iostream>

cin >> a >> b;

C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。
在这里插入图片描述
cin在遇到结束符(Space、Tab、Enter)就结束,且对于结束符,并不保存到变量中

cin.get()

cin.get()与C语言中getchar()等价,get() 函数不会跳过空格、制表符、回车等特殊字符,所有的字符都能被读入

int c;
    while ((c = cin.get()) != EOF)
        cout.put(c);

cin.getline()

cin.getline()可以读入一行字符串(整行数据)
可以通过getline和split实现字符串分割

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin>>s;
	stringstream ssin(s);
	string temp;
	vector<string> strs;
	//此处用getline时要注意最后一个回车的问题
	while(getline(ssin,temp,',')) strs.push_back(temp);
	//此处也可以用stringstream流的性质直接读取字符串,不用getline
	//while(ssin>>temp) strs.push_back(temp);
	for(int i=0;i<strs.size();i++) cout<<strs[i]<<" ";
	return 0;
}


标准输出流(cout)

预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的,流插入运算符 << 在一个语句中可以多次使用,endl 用于在行末添加一个换行符。

C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。

#include <iostream>

cout << a << " " << endl;

在这里插入图片描述

setw

设置字段宽度,效果类似于 %5d

#include<iomanip>

cout << setw(5) << 123 << endl;
cout << setw(5) << 45<< endl;
cout << setw(5) << 123456 << endl;

输出

  123
   45
123456

输出长度小于设置时,靠右对齐,前面为空格;输出长度大于设置时,设置失效。

left/right

设置输出对齐方式,与setw()搭配使用

cout << setw(5) << left << 123 << endl;
cout << setw(5) << 123 << endl;
cout << setw(5) << right << 123 << endl

输出

123
123
  123

setfill

将空格填充为特定的字符,与setw配合使用

要注意的是:首先填充的必须是字符,char类型。

cout << setw(5) << left << setfill('-') << 123 << endl;
cout << setw(5) << setfill('-') << 1.5 << endl;
123--
1.5--

fixed

fixed指的是:流的格式化,将一个浮点数表示为,一个定点整数和小数点和小数部分的格式

fixed只改变double或float的输出格式,对int无效

double a = 123.456;
cout << a << endl;
cout << fixed << a << endl;
cout << a << endl;

输出

123.456
123.456000
123.456000

setprecision

setprecision()函数的意思是,保留多少位有效数字

例如123.456如果保留5位有效数字的话,就变成了:123.46,进行四舍五入。

如果想保留的是小数,例如把123.456变成123.456000,就要用fixed与setprecision向结合的方式

如果不加fixed,就是有效数字;如果加了fixed,就是保留小数

double a = 123.456;
cout << setprecision(5) << a << endl;
cout << fixed << setprecision(5) << a << endl;
cout << resetiosflags(ios::fixed) << setprecision(5) << a << endl;
123.46
123.45600
123.46

第三行是将其改变回来正常的输出

hex/dec/oct

hex是十六进制,dec是十进制,oct是八进制

int b = 55;
cout << b << endl;
cout << hex << b << endl;
cout << b << endl;
cout << oct << b << endl;
cout << dec;
cout << b << endl;

输出

55
37
37
67
55

切记:对cout做的设置都需要更改回来,不然会一直保持更改后的状态

scanf()和printf()

C++也可以沿用C语言中的scanf()和printf()函数进行输入输出,规则相同

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值