C++输入输出常用格式(cin,cout,stringstream)
输入格式
1、cin>>a;
- 最基本的格式,适用于各种类型。会过滤掉不可见字符例如空格,TAB,回车等
2、cin>>noskipws>>ch[i];
- 使用了 noskipws流控制,不会过滤空白字符
3、cin.get(ch); 或 ch = cin.get();
接收一个字符,类似于getchar();
4、cin.getline(s,k);
- 接收一行中k个字符,可以接收空格
- cin.getline()实际有三个参数,cin.getline(字符串,接收个数,结束字符);
- 当第三个参数省略时,系统默认为'\0';
5、getline(cin,s);
- 和cin.getline()类似,读入一行字符串,值得注意的是cin.getline()属于istream流,而getline()属于string流,二者并不相同。
输出格式
1、cout << a;
- 基本格式,适用于各种类型
2、cout << setprecision(k) << a;
- 设置位数,和printf中的%6d此格式类似;
- 若是想要设置小数点后位数,则用cout << fixed << setprecision(k) << a; 控制小数点后位数
3、cout << setfill(ch) << setw(k) << a;
- 设置长度以及填充字符,例如cout << setfill('0') << setw(3) << 1;输出001.
4、cout << hex << setiosflags(ios::uppercase) << a; 或 cout << hex << uppercase << a;
- hex控制输出的格式,默认为dec(十进制),可手动设置dec,hex,oct。
- setiosflags为控制格式,ios::uppercase 为输出大写十六进制格式,也可以省略setiosflags直接写uppercase.一共有7种格式
- setiosflags(ios::fixed) --- 固定的浮点显示
- setiosflags(ios::scientific) --- 指数表示
- setiosflags(ios::left) ---左对齐
- setiosflags(ios::right) ---右对齐
- setiosflags(ios::skipws) --- 忽略前导空白
- setiosflags(ios::uppercase) --- 16进制数大写输出
- setiosflags(ios::lowercase) ---16进制数小写输出
5、endl
这也是cout中很重要的一个东西,不仅仅只是提供一个换行,endl还会刷新缓冲区。
cout会对输出内容进行缓冲,所以输出的内容并不会立即输出到显示器而是被存储在缓冲区中。
一下三种情况会进行输出:刷新缓冲区,缓冲区满时,关闭文件。
而endl就是刷新缓存区,强制进行输出,若是想观察不刷新缓冲区的情况可以加一行#define endl "\n",将endl用换行符代替,观察输出情况。
- PS:值得注意的是只有setw的设置只有当次输出有用,下一个cout就会失效,而其他所有控制格式会永久生效。
StringStream
这个东西单独讲,比较重要,包含在sstream库中。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
stringstream类同时可以支持C风格的串流的输入输出操作。
然后stringstream的作用就是从string对象读取字符或字符串。
string s = "ABCD";
stringstream ss(s);
char ch;
while(ss>>ch){
cout << ch << " ";
} //运行结果
//A B C D
又例如
string s = "hello world";
stringstream ss(s);
string str;
while(ss>>str){
cout << str << " ";
} //运行结果
//hello world
在某些题目需要处理字符串时,这些题目往往是输入的一行中包含多个字符以及空格,这个时候就可以利用 stringstream进行单个字符或者单个字符串分析处理了。
还是那句话,其实啥都不是很难,多敲代码,多运用就熟悉了 =7=
C++输入输出常用格式(cin,cout,stringstream)的更多相关文章
- printf scanf cin cout的区别与特征
printf和scanf是c语言的输入输出,学习c++以后,自然是用cin cout这两个更简单的输入输出 printf scanf 都需要进行格式控制,比较麻烦,但优点是速度比较快,毕竟多做了一些事 ...
- C++输入输出流 cin/cout 及格式化输出简介
C++ 可通过流的概念进行程序与外界环境( 用户.文件等 )之间的交互.流是一种将数据自源( source )推送至目的地( destination )的管道.在 C++ 中,与标准输入/输出相关的流 ...
- SCI/EI期刊投稿 Reply Letter 常用格式总结
SCI/EI期刊投稿Reply Letter常用格式总结 整个论文投稿的过程中,会遇到各种问题,需要我们向主编询问或是回复.下面主要总结了responses to the comme ...
- acdream B - 郭式树 (水题 卡cin,cout, 卡LL)
题目 输入正好是long long的最大, 但是答案超long long 所以用unsigned, 不能用cin cout否则一定超时: 不能用abs(), abs 只用于整数. unsigned ...
- C#常用格式输出
ylbtech- .NET-Basic:C#常用格式输出 C#常用格式输出 1.A,相关概念返回顶部 using System; namespace Test { class Formating { ...
- Swift - 正则表达式的使用(附用户名、邮箱、URL等常用格式验证)
Swift虽然是一个新出的语言,但却不提供专门的处理正则的语法和类.所以我们只能使用古老的NSRegularExpression类进行正则匹配. 即先接受一个正则表达式的字符串,由此生成NSRegul ...
- markdown 常用格式API
摘要 记录常用格式 参考:https://www.zybuluo.com/mdeditor 1. 标题 写法: 文字前加 #, 几个# 表示几级标题 标题下方增加 = 或 - 效果 标题1 标题2 标 ...
- MarkDown常用格式
常用格式 ** :加粗 <br> : 换行 > :可以用来引用文章,很漂亮. 可以展开的文件夹格式 <details> <summary>框架</sum ...
- 892B. Wrath#愤怒的连环杀人事件(cin/cout的加速)
题目出处:http://codeforces.com/problemset/problem/892/B 题目大意:一队人同时举刀捅死前面一些人后还活着几个 #include<iostream&g ...
随机推荐
- php Basic HTTP与Digest HTTP 应用
Basic HTTP 认证范例 <?php //Basic HTTP 认证 if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authen ...
- spring-boot-plus运维部署(八)
spring-boot-plus运维部署 线上部署 打包环境为prod mvn clean package -Pprod 打包后的目录 cd target/spring-boot-plus-1.2.0 ...
- 如何使用 Skywalking Agent ?
如何使用 Skywalking Agent ? 如果你还不知道 Skywalking agent 是什么,请点击这里查看 Probe 或者这里查看快速了解agent,由于我这边大部分都是 JAVA 服 ...
- Delphi - Indy TIdFTP控件实现文件的上传和下载
FTP信息保存和获取 我们在做FTP相关开发时,为方便后续FTP切换,一般先把FTP账户信息保存到数据库表中,在使用时再通过Query获取出来. 一般通过如下方式获取到FTP相关信息,代码如下: // ...
- C#开发BIMFACE系列9 服务端API之获取应用支持的文件类型
系列目录 [已更新最新开发文章,点击查看详细] BIMFACE最核心能力之一是工程文件格式转换.无需安装插件,支持数十种工程文件格式在云端转换,完整保留原始文件信息.开发者将告别原始文件解析烦 ...
- Mysql死锁如何排查:insert on duplicate死锁一次排查分析过程
前言 遇到Mysql死锁问题,我们应该怎么排查分析呢?之前线上出现一个insert on duplicate死锁问题,本文将基于这个死锁问题,分享排查分析过程,希望对大家有帮助. 死锁案发还原 表结构 ...
- HTML(二)属性,标题,段落,文本格式化
HTML属性 HTML属性 HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比如:name="value" 常用属 ...
- ZOJ-3964 Yet Another Game of Stones
Yet Another Game of Stones 题意: Alice 和 Bob 在进行取石子游戏, 现在一共有n堆石子, 每堆石头有ai个, 然后每堆石头有一个bi属性, 如果bi == 0, ...
- 最短路 dijkstra+优先队列+邻接表
http://acm.hdu.edu.cn/showproblem.php?pid=2544 #include<iostream> #include<queue> #inclu ...
- CodeForces 340E Iahub and Permutations 错排dp
Iahub and Permutations 题解: 令 cnt1 为可以没有限制位的填充数字个数. 令 cnt2 为有限制位的填充数字个数. 那么:对于cnt1来说, 他的值是cnt1! 然后我们对 ...