c++的输入和输出

1. 输入/输出流的成员函数

put()函数
put函数常用的调用形式:
cout.put(char ch);
功能:用于输出一个字符,还可以是ASCII代码(或者是ASCII表达式)
cout.put(65);

get()函数

常用形式为:cin.get(ch);
功能:是从输入流中读取一个字符包括空白符,赋给字符变量ch如果读取成功则函数返回非0值,如果失败(遇文件结束符EOF)则函数返回0值

#include<iostream>
using namespace std;
int main()
{char ch;cout<<"输入数据:"<<endl;while(cin.get(ch)){cout.put(ch);}return 0;} 

在这里插入图片描述
在这里插入图片描述
getline函数
getline函数常用的调用形式为:
cin.getline(字符指针,字符个数n,终止标志字符);
功能:从输入流读取n-1个字符,赋给指定的字符数组(或字符指针),然后插入一个字符串结束标志“\n”;
如果在读取n-1个字符之前遇到指定的终止字符,则提前结束读取,然后插入一个字符串结束标志’\n’。

#include<iostream>
using namespace std;
int main()
{char line[20];cout<<"输入数据"<<endl;cin.getline(line,20,'t');cout<<line; return 0;} 

在这里插入图片描述

2. 预定义类型输入输出的格式控制

用流成员函数进行输入输出格式控制

成员函数有
设置状态标准的流成员函数self()

ios::skipws 跳过输入中的空白符,用于输入
ios::left 输出数据在本域宽范围内左对齐,用于输出
ios::right 输出数据在本域宽范围内右对齐,用于输出
ios::internal 数据的符号位左对齐,数据本身右对齐,
符号和数据之间为填充符,用于输出
ios::dec 设置整数的基数为10,用于输入/输出
ios::oct 设置整数的基数为8,用于输入/输出
ios::hex 设置整数的基数为16,用于输入/输出
ios::showbase 输出整数时显示基数符号(八进制数以0打头,
十六进制数以0x打头),用于输入/输出
ios::showpoint 浮点数输出时带有小数点,用于输出
ios::uppercase 在以科学表示法格式E和以十六进制
输出字母时用大写表示,用于输出
ios::showpos 正整数前显示“+”符号,用于输出
ios::scientific 用科学表示法格式(指数)显示浮点数, 用于输出
ios::fixed 用定点格式(固定小数位数)显示浮点数,用于输出
ios::unitbuf 完成输出操作后立即刷新所有的流,用于输出
ios::stdio 完成输出操作后刷新stdout和stderr,用于输出

#include<iostream>
using namespace std;  
int main()
{ cout.setf(ios::showpos|ios::scientific);
cout <<567<<" "<<567.89<<endl;
return 0; }

在这里插入图片描述

清理状态标志的流成员函数unself()

功能:清除某一状态标志,即是将某一状态标志位置“0”,

说明:
流成员函数unsetf括号中的参数flags与流成员函数setf相同。

设置域宽的流成员函数width()

功能:设置域宽为n位
注意:所设置的域宽仅对下一个流输出操作有效,当一次输出操作完成之后,域宽又恢复为默认域宽0。

设置实数的精度流成员函数precision()

功能:设置实数的精度为n位,在以一般十进制小数形式输出时n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时n为小数位数。

填充字符的流成员函数fill()

功能:当输出值不满域宽时用填充字符来填充,默认情况下填充字符为空格。
说明:在使用填充字符函数fill时,必须与width函数相配合,否则就没有意义。

#include<iostream>
using namespace std;
int main()
{ double i=-5.1;cout.width(10);cout.fill('*');cout.setf(ios::internal);cout<<i<<endl;return 0;
}

在这里插入图片描述

#include<iostream>  //例9.5-1 流成员函数使用方法举例。
using namespace std; 
int main()
{ cout<<"-------1--------\n";cout.width(10);     //设置域宽为10位cout<<123<<endl;    //输出整数123,占10位,默认为右对齐cout<<"-------2--------\n";cout<<123<<endl;cout<<"-------3--------\n";cout.fill('&'); //设置填充字符为'&'
cout.width(10);  //设置域宽为10位
cout<<123<<endl;   
cout<<"-------4--------\n";
cout.setf(ios::left);   //设置左对齐
cout<<123<<endl;
return 0;}

在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{cout<<"-------5--------\n";cout.precision(4);   //设置实数的精度为4位 cout<<123.45678<<endl; cout<<"-------6--------\n";cout.setf(ios::fixed); cout<<123.45678<<endl;cout<<"-------7--------\n";cout.width(15);//设置域宽为15位cout.unsetf(ios::fixed); cout.setf(ios::scientific);cout<<123.45678<<endl; return 0;
}  

在这里插入图片描述

使用预定义的操作符进行输入输出格式控制

这种方法使用了一种称为操纵符(也称为操纵函数或控制符)的特殊函数。
操纵符分为:
*不带形参的操纵符
*带形参的操纵符符
在很多情况下,使用操纵符进行格式化控制比用ios状态标志和成员函数要方便。
C++提供的预定义操纵符如下:
dec 设置整数的基数为10,用于输入/输出
hex 设置整数的基数为16用于输入/输出
oct 设置整数的基数为8用于输入/输出
ws 用于在输入时跳过开头的空白符,用于输入
endl 输出一个换行符并刷新输出流,用于输出
ends 插入一个空字符null,通常用来结束一个字符串,用于输出
flush 刷新一个输出流,用于输出
setbase(n) 设置整数的基数为n(n的取值为0,8,10 或16),n 的默认值为0,即以十进制形式输出。用于输入/输出
setfill© 设置c为填充字符,默认时为空格,用于输出
setprecision(n) 设置实数的精度为n位,在以一般十进制 小数形式输出时n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时 n为小数位数设置域宽为n,用于输出
setw(n) 设置域宽为n, 用于输出
setiosflags(f) 设置由参数f指定的状态标志, 用于输入/输出
resetiosflags(f) 终止由参数f指定的状态标志 , 用于输入/输出

带有常用的状态标志的操纵符setiosflags和
resetiosflags
setiosflags(ios::left) 数据按域宽左对齐输出
setiosflags(ios::right) 数据按域宽右对齐输出
setiosflags(ios::fixed) 固定的小数位数显示
setiosflags(ios::scientific) 设置浮点数以科学表示法(即指数形式)显示
setiosflags(ios::showpos) 在正数前添加一个“+”号输出
setiosflags(ios::uppercase) 在以科学表示法格式E和以十六进制输出字母时用大写表示
resetiosflags(f) 终止已设置的状态标志,在括号中应指定f的内容

说明:
(1) 所有不带形参的操纵符都定义在头文件iostream.h中,而带形参的操纵符则定义在头文件iomanip.h中,因而使用相应的操纵符就必须包含相应的头文件。例如:
#include
#include
(2) 在进行输入输出时,操纵符被嵌入到输入或输出链中,用来控制输入输出的格式,而不是执行输入或输出操作。

#include<iostream>     //例9.8预定义的操纵符的使用方法举例。
#include<iomanip>
using namespace std;
int main() { cout<<setw(10)<<123<<567<<endl;   //①
cout<<123<<setiosflags(ios::scientific)<<setw(20) <<123.456789<<endl;  //②
cout<<123<<setw(10)<<hex<<123<<endl; //③
cout<<123<<setw(10)<<oct<<123<<endl;  //④
cout<<123<<setw(10)<<dec<<123<<endl; //⑤
cout<<resetiosflags(ios::scientific)<<setprecision(4)<<123.456789<<endl;  //⑥
cout<<setiosflags(ios::left)<<setfill('#')<<setw(8)<<123<<endl;//⑦
cout<<resetiosflags(ios::left)<<setfill('$')<<setw(8) <<456<<endl;  //⑧
return 0;}

在这里插入图片描述

使用用户自定义的操作符进行输入输出格式控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?

一&#xff1a;背景 1. 讲故事前几天公号里有一位朋友留言说&#xff0c;你windbg玩的溜&#xff0c;能帮我分析下被 ThreadStatic 修饰的变量到底存放在哪里吗&#xff1f;能不能帮我挖出来????????????&#xff0c;其实这个问题问的挺深的&#xff0c;玩高级语言…

唐山师范学院计算机论文,唐山师范学院校园网络解决方案 毕业论文

唐山师范学院校园网络解决方案 毕业论文 (43页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.90 积分1 唐山师范学院 专 科毕业论文 题 目 唐山师范学院校园网络解决方案 学 生 指导教师 年 级 200…

基本系统设备感叹号更新不了_电脑识别不了U盘?别紧张,免费教你如何解决...

你的电脑会出现识别不了U盘的情况吗&#xff1f;为什么会识别不了U盘你了解过吗&#xff1f;首先我们说一下&#xff0c;U盘作为一个办公必备品&#xff0c;用来存储文件以便随时使用&#xff0c;简单方便。但是如果某一天你的电脑突然之间无法识别U盘的话&#xff0c;就代表新…

群同态基本定理证明_群论(7): 群代数, 群表示基础

内容提要:1 群代数; 2 域上的有限维群代数和Maschke定理; 3 函数环; 4 代数闭域上的群表示论; 本文主要参考文献.本文的前置内容为:格罗卜&#xff1a;群论(1): 群, 同构定理, 循环群格罗卜&#xff1a;群论(2): 群作用, Sylow定理更多内容&#xff0c;请移步专栏目录:格罗卜&a…

c++的文件输入/输出

1文件的概述 根据文件中数据的组织形式分为&#xff1a; 1 文本文件 文本文件又称ASCII文件&#xff0c;它的每一个字节存放一个ASCII代码&#xff0c;代表一个字符 输出文本&#xff1a;接收从内存输出的数据 输出文件&#xff0c;向它写入数据 ofstream fout; 输入文件&…

南阳理工计算机全国排名,全国工科实力最强的10所高校排名,

评价工科实力一个非常明显的指标就是学科实力&#xff0c;2017年公布的第四次学科评估结果就是最好的参考。下面就以学科评估排名全国5%的学科数作为评比基准&#xff0c;对国内主要高校的工科实力进行一个排名&#xff0c;结果如下&#xff1a;前3甲&#xff1a;清华大学、浙江…

真正的高手,都有增长思维!(深度好文)

点击蓝字关注&#xff0c;回复“职场进阶”获取职场进阶精品资料一份职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第99篇原创文章最近几年互联网红利消亡&#xff0c;老板们非常焦虑。这也一度让所谓的「首席增长官」被媒体热炒。仿佛来一个增长的救世主&#xf…

service层中有某个事物要立马提交_硬货你要的,binder机制来了

欢迎关注专栏&#xff1a;里面定期分享Android和Flutter架构技术知识点及解析&#xff0c;还会不断更新的BATJ面试专题&#xff0c;欢迎大家前来探讨交流&#xff0c;如有好的文章也欢迎投稿。Android高级进阶​zhuanlan.zhihu.com前言Binder做为Android中核心机制&#xff0c;…

学习笔记 | 传统企业互联网改革之道

【学习笔记】| 作者 / Edison Zhou这是EdisonTalk的第306篇学习分享最近在看刘润老师的《互联网战略版&#xff1a;传统企业&#xff0c;互联网在踢门》&#xff0c;学习了传统企业互联网改革的价值模型与三大模式&#xff0c;醍醐灌顶受益良多。因此&#xff0c;我将我学到的总…

蓝桥杯杂题

蓝桥杯杂题开始聊天吧气球升起度熊所居住开始聊天吧 #include<bits/stdc.h> using namespace std; set<char>S; int main() {string s;while(cin>>s){S.clear();for(auto x:s)//使用x拷贝s字符串 中的每一个字符 {S.insert(x); //将每一个字符插入到集合S中/…

setnx是原子操作吗_谈谈Volatile关键字?为什么不能保证原子性?用什么可以替代?为什么?...

大家好&#xff0c;欢迎关注我的公众号码猿bug,需要资料的话可以加我微信好友。再谈volatile关键字之前&#xff0c;首先必须聊聊JMM内存模型&#xff01;JMM主要的特性&#xff1a;可见性、原子性&#xff0c;顺序性Java 虚拟机规范试图定义一种 Java 内存模型&#xff08;JMM…

360 屏蔽ajax,怎么在easy ui做全局Ajax拦截啊?

满意答案egiuas2014.08.13采纳率&#xff1a;53% 等级&#xff1a;9已帮助&#xff1a;167人在web.xml中定义一个全局过滤器拦截所有请求&#xff1a;自定义filter your difine filter name /* 后台代码&#xff1a;过滤器中获取session用户对象 如果为空&#xff0c;返回超…

用python排序算法_Python - 八大排序算法

1、序言 本文使用Python实现了一些常用的排序方法。文章结构如下&#xff1a; 1.直接插入排序 2.希尔排序 3.冒泡排序 4.快速排序 5.简单选择排序 6.堆排序 7.归并排序 8.基数排序 上述所有的排序均写在一个Python自定义类中&#xff0c;作为成员函数。 2、排序方法详细介绍 1.…

剑指offer-数组中的重复的数字-p39

数组 c中的STL中的vector (STL中的vector每次扩容量时&#xff0c;新的容量都是之前一次的两倍) 在c/c中&#xff0c;数组和指针是相互关联又有区别的两个概念。 关联&#xff1a;当我们声明一个数组时&#xff0c;其数组的名字也是一个指针&#xff0c;该指针指向数组的第一个…

尝鲜!.NET5实操之docker+k8s,这10个坑,你不得不知!

2016年发布了.NET Core第一个正式版本&#xff0c;2020年11月.NET5也正式来临了&#xff0c;技术日新月异&#xff0c;也有点让人应接不暇。在框架设计上&#xff0c;.NET Framework的全家桶理念&#xff0c;培养了一大批的CRUD&#xff0c;而.NET Core转变成了按需使用(Pay fo…

jdk解压版_命令行版的斗地主你玩过没?

相信大家都玩过斗地主游戏&#xff0c;或在现实中斗地主或在电脑和手机上斗地主&#xff0c;但你想过用命令行界面进行斗地主吗&#xff1f;先来张图体验一下&#xff1a;是不是觉得挺有意思&#xff0c;下面就带大家一起玩一下吧~部署命令行版斗地主1 环境准备该项目是基于jav…

c语言——什么时候使用getchar()读取换行符

做题的时候有时会用到getchar()接收换行符&#xff0c;然而让人困惑的是一般使用scanf("%s", str)这样的形式读取字符串的时候似乎并没有考虑这个问题。网上通常会给你讲大道理缓冲区啥的&#xff0c;然后听懂后自己得不得的出结论全看天赋&#xff08;摊手&#xff…

[项目更新] 集成RabbitMQ队列与EventBus总线

&#xff08;Blog.Core框架开发情况&#xff0c;着色部分为本次新增&#xff09;终于项目继续迭代更新了&#xff0c;在开源这两年多&#xff0c;也是感谢每一个支持Blog.Core项目的同学&#xff0c;同时也感谢每一个在生产环境中使用&#xff0c;并提出意见和建议的小伙伴&…

cv2.imread读取图像结果none_python cv2.imread 读取中文路径的图片返回为None的问题

此篇文章首发于我的csdn博客&#xff0c;见原文链接。使用cv2读取图片是常见的事情&#xff0c;但如果&#xff0c;输出图片形状大小时出现报错“ NoneType object has no attribute shape”&#xff0c;后来排查发现读取图片的返回值image为None&#xff0c; 这就说明图片根本…

利用模板化应对ERP业务模型的快速变化

源宝导读&#xff1a;ERP这类复杂系统中&#xff0c;业务模型是系统功能的核心抽象&#xff0c;但业务模型对于不同的客户会有差异&#xff0c;也会随着业务发展而变化。虽然可以对业务组件进行复用&#xff0c;但客户定制的成本依然较高&#xff0c;本文将讨论如何利用模板化应…