本文主要内容为C++下的输入输出函数以及for循环中的C++11新特性


一、输入输出函数

1. cin

cin 遇到 空格回车Tab结束输入, 且会将读到的空格、回车、Tab 丢弃,例:

#include<iostream>
using namespace std;int main(void) {char a[10];cin >> a;cout << a << endl;  //第一次输出cin >> a;cout << a << endl;  //第二次输出return 0;
}

Test:

由图像可见,在输入时,若输入两串字符,即便程序需要输入两次,第二次读取不会再次手动从键盘输入,而是上次输入的空格后的内容成为第二次读入的字符串。类似于scanf


2. cin.get()

1) cin.get()有三种形式:

ch = cin.get();
cin.get( ch );
cin.get( str, size );

注:前两个用于读取字符,第三个用于读取字符串。cin.get()不会丢弃读到的空格、回车,即第一个cin.get()读到 Space 或 Enter 后,停止读取数据,在第二次的cin.get()中,会将上次读取到的 Space 或 Enter 存到字符中,而不是继续读取结束符后面的数据。

#include<iostream>
using namespace std;int main(void) {char a, b, c;cout << "input: "; cin.get(a);cout << "output : " << a << endl;cout << "input again: ";cin.get(b);cout << "output : " << b << endl;cout << "input again: ";cin.get(c);cout << "output : " << c << endl;return 0;
}

Test:

2) 在使用cin.get(str, size)读取字符串时,同样会遇到Space与Enter结束输入,而且不会将最后读到的Space与Enter丢弃,所以会造成后续cin.get()无法继续读入应有的字符串。PS:可用cin.clear()来清除

#include<iostream>
using namespace std;int main(void) {char a[10], b[10], c[10];cout << "input: " << endl; cin.get(a, 10);cout << "output : " << a << endl;cout << "input again: " << endl;cin.get(b, 10);cout << "output : " << b << endl;cout << "input again: " << endl;cin.get(c, 10);cout << "output : " << c << endl;return 0;
}

Test:


3. cin.getline()

cin.getline(str, size);用于读取一行字符串,限制读入size - 1个字符,会自动将读到的Enter丢弃,且会在字符串最后添加\0作为结束符。然而,如果一行字符串长度超过 size ,会造成多余字符丢失。

 #include<iostream>
using namespace std;int main(void) {char a[3], b[3], c[3];cin.getline(a, 3);cin.getline(b, 3);cin.getline(c, 3);cout << "output : " << a << endl;cout << "output : " << b << endl;cout << "output : " << c << endl;return 0;
}

Test :

图中两次运行程序均只输入了一次,第一次输入`abcdefg`,测试长度超限,第二次测试空格对其影响。

二、循环(C++11 新特性)

C++11新增了一种循环:基于范围(range-based)的for循环。
(吐槽一下~~,虽然在学C++,但是总是会想到Python,因为好多东西貌似Python……,就比如这个range-based,Python的循环为for i in range(1. 10), 遍历1 <= i < 10)

ok,开始正题:


1)遍历

#include<iostream>
using namespace std;int main(void) {int number[5] = {3, 2, 1, 5, 4};cout << "Output :" << endl;for(int x : number)  //warning: 此处为 :, 而不是 ;cout << x << ' ';cout << endl;return 0;
}for循环的含义为:变量x在数组number中遍历,且x代表数组中被指向的元素

Test :


2)修改数组元素

#include<iostream>
using namespace std;int main(void) {int number[5] = {3, 2, 1, 5, 4};for(int &x : number)x *= 2; //将数组中每个元素乘2cout << "Output :" << endl;for(int x : number)cout << x << ' ';cout << endl;return 0;
}for循环中定义了`&x`,&表明x为引用变量,即改变x的值可以直接改变数组中对应元素的值。

Test :


3)for循环与初始化列表的结合

#include<iostream>
using namespace std;int main(void) {cout << "Output :" << endl;for(int x : {5, 4, 1, 2, 3})cout << x << ' ';cout << endl;return 0;
}x将遍历列表{5, 4, 1, 2, 3}中的值

Test :

本次的笔记(一)暂时到此为止,如有不足会持续更新、添加。

C++学习笔记(一)相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  10. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

最新文章

  1. 黑色诱惑 -- Media Player 11
  2. C 指针的有意思的描述
  3. Ubuntu11.04在Win7下从硬盘安装 和 使用体验
  4. 神奇的 SQL 之擦肩而过 → 真的用到索引了吗
  5. Java学习小程序(7)九九乘法表
  6. 杭州之行--记杭电网新恩普杯程序设计邀请赛
  7. 根据流程部署ID来获取流程定义图片
  8. 【ACL2019】看 NLP 未来发展趋势
  9. 这一小点程序员务实的调整,可以避免整个开发团队的崩溃
  10. Navigation Timing API 准确掌握浏览器各项开销时间
  11. HTML+CSS期末网页课设——游戏宣传网页(全部源码)
  12. 1000句英语经典口语(4)
  13. vue:高德地图的使用
  14. 串口编程DCB结构体参数配置详细说明
  15. Java获取中文拼音、中文首字母缩写和中文首字母
  16. object sender,EventArgs e
  17. shell编程—tomcat自动发包详解
  18. 小蓝和小绿机器人篇_小绿和小蓝机器人篇:很高兴认识你,你尚未认识我,做人真难啊...
  19. Photos(PHAssetCollection)
  20. 东航mu座位分布图机翼_东航大飞机座位分布图是什么?

热门文章

  1. angularJS constant和value
  2. HTML基础知识(未完待续)
  3. 复习HTML CSS(5)
  4. Netty中的策略者模式
  5. WAP自助建站 我编程之路的启蒙
  6. Func 与Action
  7. centos7.3 安装 mysql-5.7.13
  8. 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】...
  9. 深入探讨JS中的数组排序函数sort()和reverse()
  10. java项目中外接扫描仪无法使用_java – 扫描仪行不可用错误