C++学习笔记(一)
本文主要内容为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++学习笔记(一)相关推荐
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 2020年Yann Lecun深度学习笔记(下)
2020年Yann Lecun深度学习笔记(下)
- 2020年Yann Lecun深度学习笔记(上)
2020年Yann Lecun深度学习笔记(上)
- 知识图谱学习笔记(1)
知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...
- 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...
- 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 ...
- MongoDB学习笔记(入门)
MongoDB学习笔记(入门) 一.文档的注意事项: 1. 键值对是有序的,如:{ "name" : "stephen", "genda" ...
- NuGet学习笔记(3) 搭建属于自己的NuGet服务器
文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...
最新文章
- 黑色诱惑 -- Media Player 11
- C 指针的有意思的描述
- Ubuntu11.04在Win7下从硬盘安装 和 使用体验
- 神奇的 SQL 之擦肩而过 → 真的用到索引了吗
- Java学习小程序(7)九九乘法表
- 杭州之行--记杭电网新恩普杯程序设计邀请赛
- 根据流程部署ID来获取流程定义图片
- 【ACL2019】看 NLP 未来发展趋势
- 这一小点程序员务实的调整,可以避免整个开发团队的崩溃
- Navigation Timing API 准确掌握浏览器各项开销时间
- HTML+CSS期末网页课设——游戏宣传网页(全部源码)
- 1000句英语经典口语(4)
- vue:高德地图的使用
- 串口编程DCB结构体参数配置详细说明
- Java获取中文拼音、中文首字母缩写和中文首字母
- object sender,EventArgs e
- shell编程—tomcat自动发包详解
- 小蓝和小绿机器人篇_小绿和小蓝机器人篇:很高兴认识你,你尚未认识我,做人真难啊...
- Photos(PHAssetCollection)
- 东航mu座位分布图机翼_东航大飞机座位分布图是什么?
热门文章
- angularJS constant和value
- HTML基础知识(未完待续)
- 复习HTML CSS(5)
- Netty中的策略者模式
- WAP自助建站 我编程之路的启蒙
- Func 与Action
- centos7.3 安装 mysql-5.7.13
- 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】...
- 深入探讨JS中的数组排序函数sort()和reverse()
- java项目中外接扫描仪无法使用_java – 扫描仪行不可用错误