取代C语言标准输入输出:cin 和 cout【C++标准输入输出】
- C语言 和 C++ 标准输入输出的区别
- cin标准输入
- 解决scanf输入字符的问题
- 解决C语言输入字符串的问题
- cout
- 进制输出
- 域宽
- 左对齐 / 右对齐
- 填充
- 设置有效数字
- 设置浮点数精度
C语言 和 C++ 标准输入输出的区别
cin
取代 scanf
cout
取代 printf
scanf
和 printf
本质是函数。
cin
和 cout
本质是类对象。
cin标准输入
代码演示:
#include <iostream>int main()
{int a, b, c;std::cin >> a >> b >> c;std::cout << "a = " << a << " b = " << b << " c = " << c << std::endl;return 0;
}
运行结果:
输入间隔可以不限次使用:空格、Tab和回车,最后一个输入后用回车表示输入结束。
>>
表示流输入运算符,也表示右移运算符,这种现象称为运算符重载,重载运算符的作用:根据语境判断。
<<
表示流输出运算符。
解决scanf输入字符的问题
char m; int n;
scanf("%d%c", &n, &m);
C语言解决方案:
scanf("%d %c", &n, &m);
- getchar() 输入字符。
C++解决方案:cin>>n>>m;
解决C语言输入字符串的问题
char buf[10];
scanf("%s", buf); //C语言不安全的字符串输入
scanf 输入字符串有空格时,会丢失空格之后的字符串。
char buf[10];
fgets(buf, 10, stdin); //C语言安全的字符串输入 读取前9个字符 + \0
fgets
输入字符串有空格时,不会丢失空格之后的字符串。
char buf[10];
cin >> buf; //C++不安全的输入字符串
cin
输入 buf[10]
字符串有空格时,会丢失空格之后的字符串。
char buf[10];
cin.getline(buf, 10); //C++安全的输入字符串 读取前9个字符 + \0
cin.getline();
输入字符串有空格时,不会丢失空格之后的字符串。
string str;
cin >> str; //C++安全的字符串输入
cin
输入 string
字符串有空格时会丢失空格之后的字符串。
cout
进制输出
代码演示:
#include <iostream>using namespace std;int main()
{//进制输出int data = 1234;cout << data << endl; //十进制输出cout << hex << data << endl; //十六进制输出 hex 表示流算子cout << oct << data << endl; //八进制输出cout << dec << data << endl; //十进制输出return 0;
}
运行结果:
域宽
代码演示:
#include <iostream>
#include <iomanip>using namespace std;int main()
{//域宽float f = 1.234;cout << f << endl;cout << setw(10) << f << endl; //设置域宽为10return 0;
}
运行结果:
左对齐 / 右对齐
代码演示:
#include <iostream>
#include <iomanip>using namespace std;int main()
{float f = 1.234;//左对齐 右对齐 默认情况右对齐cout << setw(10) << setiosflags(ios::left) << f << endl;cout << setw(10) << setiosflags(ios::right) << f << endl;return 0;
}
运行结果:
填充
代码演示:
#include <iostream>
#include <iomanip>using namespace std;int main()
{//填充 默认填充空格int a = 12;int b = 2;int c = 5;//用字符 0 填充cout << setfill('0') << setw(2) << a << ":" << setw(2) << b << ":" << setw(2) << c << endl;return 0;
}
运行结果:
设置有效数字
代码演示:
#include <iostream>
#include <iomanip>using namespace std;int main()
{//设置有效数字float ff = 1.23456;cout << setprecision(3) << ff << endl;return 0;
}
运行结果:
设置浮点数精度
代码演示:
#include <iostream>
#include <iomanip>using namespace std;int main()
{//设置浮点数精度float ff = 1.23456;cout << setprecision(3) << setiosflags(ios::fixed) << ff << endl;return 0;
}
运行结果:
取代C语言标准输入输出:cin 和 cout【C++标准输入输出】相关推荐
- 取代C语言的标准输入输出:cin 和 cout【C++标准输入输出】
C 和 C++ 标准输入输出的区别 cin 标准输入 C++解决C cout 标准输入 C 和 C++ 标准输入输出的区别 cin 取代 scanf cout 取代 printf printf 和 s ...
- [笔记]cin、cout与scanf、printf的效率差异对比分析
之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是 ...
- QtCreator下使用c++标准输入cin输出cout没有阻塞等待输入
引言 在QtCreator中编写c++程序,其中需要从控制台输入,就用了c++的cout和cin,本应该等待控制台输入文本,但是却没有.下面是具体的案例. 案例 本文基于QtCreator创建的qt控 ...
- C++ 语言 std::cin - std::cout - std::cerr - std::clog
C++ 语言 std::cin - std::cout - std::cerr - std::clog std::cin - 标准输入流 std::cout - 标准输出流 std::cerr - 标 ...
- C++性能之战(4)--LeetCode 841 钥匙和房间(cin和cout加速)
希望大家收藏: 本文持续更新地址:https://haoqchen.site/2018/09/04/LeetCode841/ 今天刷841的时候看到一个大神写的巨高级的代码.在这里分享以下.这位大神用 ...
- cin、cout的重载
一.cin重载 1.cin为ostream类的成员 2.cin重载应为全局函数(毕竟ostream是别人写好的) 3.代码 a.核心代码 ostream & operator& ...
- C++的cin和cout取消同步
虽然C++有cin函数,但看别人的程序,大多数人都用C的scanf来读入,其实是为了加快读写速度,难道C++还不如C吗!? 其实cin效率之所以低,不是比C低级,是因为先把要输出的东西存入缓冲区,再输 ...
- 学什么c语言标准,C语言的标准 “输入输出”!今天是你学C语言的第几天?
当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch # C语言标准输入输出 C语言输入输出,是指C程序从键盘.文件等外部获取数据,将数据输出到显示器.文件等外部输出设 ...
- cin、cout、cerr、clog用法区别及其在VS环境下的重定向
今天学习C++,发现C++中的输出流除了常用的cout,还有cerr和clog两种输出流对象,由于之前没有遇到过,所以特地查了一下用法,记录一下. 1. cin.cout.cerr.clog ...
最新文章
- ThinkPHP5 (路径优化,路由)
- 20155325 2016-2017-2 《Java程序设计》第3周学习总结
- Java的Executor框架和线程池实现原理
- h5移动端如何让页面强制横屏
- TIOBE 11 月榜单:Python 挤掉 Java,Java的下跌趋势确立了?
- Android之解决viewpage加载第3个fragment的时候,第一个fragment又重新构建问题
- PyPDF2 | 利用 Python 实现 PDF 分割
- mysql5.7安装教程
- Maven Install报错:Perhaps you are running on a JRE rather than a JDK
- 使用计算机解决问题的本质,(新教材)教科版高中信息技术必修一 2.1 计算机解决问题的过程 课件(共25张PPT)...
- 【HDOJ】1261 字串数【组合数学--排列+代数】
- C++ printf输出
- Android开发之桌面快捷键使用细则(原创)
- 漏洞payload 靶机_以DVRF(路由器漏洞靶机)为例解读JEB固件漏洞利用-阿里云开发者社区...
- 小学生认识计算机网络教案,小学信息技术四年级教案
- python如何停止子线程_【已解决】python 如何结束子线程呢
- 董卫凤:不服输的华丽转身(一)
- mysql常考50_要想学好SQL语句必会的50题,也是考试常考的点
- 计算机附近组件的安装方法,在计算机上安装组件
- Unity3D游戏开发-宣雨松读书摘要(2015-4-17 18:36)