• C语言 和 C++ 标准输入输出的区别
  • cin标准输入
    • 解决scanf输入字符的问题
    • 解决C语言输入字符串的问题
  • cout
    • 进制输出
    • 域宽
    • 左对齐 / 右对齐
    • 填充
    • 设置有效数字
    • 设置浮点数精度

C语言 和 C++ 标准输入输出的区别

cin 取代 scanf
cout 取代 printf

scanfprintf 本质是函数。
cincout 本质是类对象。

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语言解决方案:

  1. scanf("%d %c", &n, &m);
  2. 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++标准输入输出】相关推荐

  1. 取代C语言的标准输入输出:cin 和 cout【C++标准输入输出】

    C 和 C++ 标准输入输出的区别 cin 标准输入 C++解决C cout 标准输入 C 和 C++ 标准输入输出的区别 cin 取代 scanf cout 取代 printf printf 和 s ...

  2. [笔记]cin、cout与scanf、printf的效率差异对比分析

    之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是 ...

  3. QtCreator下使用c++标准输入cin输出cout没有阻塞等待输入

    引言 在QtCreator中编写c++程序,其中需要从控制台输入,就用了c++的cout和cin,本应该等待控制台输入文本,但是却没有.下面是具体的案例. 案例 本文基于QtCreator创建的qt控 ...

  4. C++ 语言 std::cin - std::cout - std::cerr - std::clog

    C++ 语言 std::cin - std::cout - std::cerr - std::clog std::cin - 标准输入流 std::cout - 标准输出流 std::cerr - 标 ...

  5. C++性能之战(4)--LeetCode 841 钥匙和房间(cin和cout加速)

    希望大家收藏: 本文持续更新地址:https://haoqchen.site/2018/09/04/LeetCode841/ 今天刷841的时候看到一个大神写的巨高级的代码.在这里分享以下.这位大神用 ...

  6. cin、cout的重载

    一.cin重载   1.cin为ostream类的成员   2.cin重载应为全局函数(毕竟ostream是别人写好的)   3.代码   a.核心代码 ostream & operator& ...

  7. C++的cin和cout取消同步

    虽然C++有cin函数,但看别人的程序,大多数人都用C的scanf来读入,其实是为了加快读写速度,难道C++还不如C吗!? 其实cin效率之所以低,不是比C低级,是因为先把要输出的东西存入缓冲区,再输 ...

  8. 学什么c语言标准,C语言的标准 “输入输出”!今天是你学C语言的第几天?

    当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch # C语言标准输入输出 C语言输入输出,是指C程序从键盘.文件等外部获取数据,将数据输出到显示器.文件等外部输出设 ...

  9. cin、cout、cerr、clog用法区别及其在VS环境下的重定向

    今天学习C++,发现C++中的输出流除了常用的cout,还有cerr和clog两种输出流对象,由于之前没有遇到过,所以特地查了一下用法,记录一下. 1.      cin.cout.cerr.clog ...

最新文章

  1. ThinkPHP5 (路径优化,路由)
  2. 20155325 2016-2017-2 《Java程序设计》第3周学习总结
  3. Java的Executor框架和线程池实现原理
  4. h5移动端如何让页面强制横屏
  5. TIOBE 11 月榜单:Python 挤掉 Java,Java的下跌趋势确立了?
  6. Android之解决viewpage加载第3个fragment的时候,第一个fragment又重新构建问题
  7. PyPDF2 | 利用 Python 实现 PDF 分割
  8. mysql5.7安装教程
  9. Maven Install报错:Perhaps you are running on a JRE rather than a JDK
  10. 使用计算机解决问题的本质,(新教材)教科版高中信息技术必修一 2.1 计算机解决问题的过程 课件(共25张PPT)...
  11. 【HDOJ】1261 字串数【组合数学--排列+代数】
  12. C++ printf输出
  13. Android开发之桌面快捷键使用细则(原创)
  14. 漏洞payload 靶机_以DVRF(路由器漏洞靶机)为例解读JEB固件漏洞利用-阿里云开发者社区...
  15. 小学生认识计算机网络教案,小学信息技术四年级教案
  16. python如何停止子线程_【已解决】python 如何结束子线程呢
  17. 董卫凤:不服输的华丽转身(一)
  18. mysql常考50_要想学好SQL语句必会的50题,也是考试常考的点
  19. 计算机附近组件的安装方法,在计算机上安装组件
  20. Unity3D游戏开发-宣雨松读书摘要(2015-4-17 18:36)

热门文章

  1. 93. 复原 IP 地址(回溯算法)
  2. 2021-07-03
  3. CSocket类的Receive超时的问题解决方案
  4. 反编译APK文件的三种方法
  5. 移动重定位表到新增节
  6. Java Socket 客户端使用指定端口多次连接服务器引发 BindException
  7. 160个Crackme034拆解KeyFile验证升级版
  8. 堆排序分析(大根堆为例,由小到大排序)
  9. 2021暑假每日一题 【week4 完结】
  10. 【PAT乙级】1086 就不告诉你 (15 分)