C++ 用户输入

你已经学习了 cout 用于输出(打印)值。现在我们将使用 cin 来获取用户输入。

cin 是一个预定义变量,它使用提取运算符(>>)从键盘读取数据。

在下面的示例中,用户可以输入一个数字,该数字存储在变量 x 中。然后我们打印 x 的值:

示例

int x;
cout << "Type a number: "; // 输入一个数字然后按回车键
cin >> x; // 从键盘获取用户输入
cout << "Your number is: " << x; // 显示输入值

需要注意的是:

  • cout 的发音是 "see-out"。用于输出,并使用插入运算符(<<
  • cin 的发音是 "see-in"。用于输入,并使用提取运算符(>>

创建一个简单的计算器

在这个示例中,用户必须输入两个数字。然后我们通过计算(相加)这两个数字来打印它们的和:

示例

int x, y;
int sum;
cout << "Type a number: ";
cin >> x;
cout << "Type another number: ";
cin >> y;
sum = x + y;
cout << "Sum is: " << sum;

就是这样!你刚刚建立了一个基本的计算器

C++ 数据类型

C++ 中的变量必须是指定的数据类型:

示例

int myNum = 5;               // 整数(整数)
float myFloatNum = 5.99; // 浮点数
double myDoubleNum = 9.98; // 浮点数
char myLetter = 'D'; // 字符
bool myBoolean = true; // 布尔值
string myText = "Hello"; // 字符串

基本数据类型

数据类型指定了变量将存储的信息的大小和类型:

数据类型 大小 描述
boolean 1 字节 存储 true 或 false 值
char 1 字节 存储单个字符/字母/数字,或 ASCII 值
int 2 或 4 字节 存储整数,不带小数
float 4 字节 存储含有一个或多个小数点的分数。足以存储 6-7 位小数
double 8 字节 存储含有一个或多个小数点的分数。足以存储 15 位小数

C++ 数值数据类型

数值类型

当需要存储没有小数的整数时,使用 int,例如 351000,而当需要浮点数(带小数)时,则使用 floatdouble,例如 9.993.14515

int

int myNum = 1000;
cout << myNum;

float

float myNum = 5.75;
cout << myNum;

double

double myNum = 19.99;
cout << myNum;

floatdouble

浮点数值的精度表示小数点后有多少位数字。float 的精度仅为六到七位小数,而 double 变量的精度约为 15 位数字。因此,在大多数计算中使用 double 更安全。

科学计数法

浮点数也可以是带有 "e" 表示的科学计数法:

示例

float f1 = 35e3;
double d1 = 12E4;
cout << f1;
cout << d1;

C++ 布尔数据类型

布尔类型

布尔数据类型由 bool 关键字声明,只能取 truefalse 两个值。

当值返回时,true = 1false = 0

示例

bool isCodingFun = true;
bool isFishTasty = false;
cout << isCodingFun; // 输出 1(true)
cout << isFishTasty; // 输出 0(false)

布尔值主要用于条件测试,在后续章节中你会学到更多关于它们的知识。

C++ 字符数据类型

字符类型

char 数据类型用于存储单个字符。字符必须用单引号括起来,如 'A''c'

示例

char myGrade = 'B';
cout << myGrade;

或者,如果你熟悉 ASCII,你可以使用 ASCII 值来显示某些字符:

示例

char a = 65, b = 66, c = 67;
cout << a;
cout << b;
cout << c;

提示:所有 ASCII 值的列表可以在我们的 ASCII 表参考中找到。

C++ 字符串数据类型

字符串类型

string 类型用于存储一系列字符(文本)。这不是一个内置类型,但在最基本的用法中,它的行为类似于一个。

字符串值必须用双引号括起来:

示例

string greeting = "Hello";
cout << greeting;

要使用字符串,你必须在源代码中包含一个额外的头文件,即 <string> 库:

示例

// 包含字符串库
#include <string> // 创建一个字符串变量
string greeting = "Hello"; // 输出字符串值
cout << greeting;

你将在我们的 C++ 字符串章节中了解更多关于字符串的知识。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

C++ 用户输入与数据类型详解:建立基本计算器及变量类型的更多相关文章

  1. MySQL 数据类型 详解

    MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...

  2. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  3. 产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程

    产品经理-需求分析-用户故事-敏捷开发 详解 用户故事是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素:1. 角色:谁要使用这个功能.2. 活动:需要完成什么样的功能.3. 商业价 ...

  4. redis详解(二)-- 数据类型详解

    Redis常用数据类型详解 1,Redis最为常用的数据类型主要有以下: String Hash List Set Sorted set pub/sub Transactions 在具体描述这几种数据 ...

  5. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  6. oracle 数据类型详解---日期型(转载)

    oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTER ...

  7. MySQL的用户密码过期功能详解

    MySQL的用户密码过期功能详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 先说明两个术语. Payment Ca ...

  8. python之数据类型详解

    python之数据类型详解 二.列表list  (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...

  9. 转 python数据类型详解

    python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...

  10. 2-2和2-3基本数据类型 & 2-4基本数据类型详解 & 3-1和3-2整形字面量值及变量声

    2-4基本数据类型详解 3-1和3-2整形字面量值及变量声 023是八进制的 0x1357是十六进制 0X3C也是十六进制 0x1abL:长整型 变量声明 数据类型 空格 变量名 赋值: 变量的定义:

随机推荐

  1. celery中异步延迟执行任务apply_anysc的用法

    描述 首先说下异步任务执行delay()和apply_anysc()两者区别,其实两者都是执行异步任务的方法,delay是apply_anysc的简写.所以delay中传递的参数会比apply_any ...

  2. 【Azure Notification Hub】如何手动删除 Notification Hub 中已注册的设备

    问题描述 在Notification Hub中注册了设备后,从Azure门户上没有找到相应的入口来删除已注册设备 (Active Devices) 如果使用C# SDK是否有办法删除呢? 问题解答 可 ...

  3. springboot,简要记录,方便复习,

    boot 笔记第一步新建工程,导包,由于boot的数据库框架是用mybtis -paus,所以关于数据库系统那儿不用色选mybatis ,需要重新maven导包完整导包以下人容: <?xml v ...

  4. 机器学习从入门到放弃:卷积神经网络CNN(二)

    一.前言 通过上一篇文章,我们大概了解了卷积是什么,并且分析了为什么卷积能在图像识别上起到巨大的作用.接下来,废话不多话,我们自己尝试动手搭建一个简易的CNN网络. 二.准备工作 在开始的时候,我们首 ...

  5. 使用Servlet进行页面跳转的两种方式

    最近在教学生学习JavaWeb相关的技术,刚好讲到Java当中的Servlet,一个服务端的小程序. 也在和学生讲使用Servlet如何进行页面跳转,一种方式是使用请求转发进行页面跳转,一种方式 是使 ...

  6. Navicat 通过 Http通道 连接远程 Mysql

    https://jingyan.baidu.com/article/3d69c551aa54dff0cf02d7a0.html 注意本机ip填写 localhost

  7. Rust 标准库 Trait 指南

    部分内容来自 Rust 2021 年期刊 内容目录 引言 Trait 基础 自动 Trait 泛型 Trait 格式化 Trait 操作符 Trait 转换 Trait 错误处理 迭代器 Trait ...

  8. maven问题之Could not calculate build plan:

    问题描述: Could not calculate build plan: Failure to transfer org.apache.maven.plugins:maven-surefire-pl ...

  9. 08.Android之View事件问题

    目录介绍 8.0.0.1 简述Android的事件分发机制?dispatchTouchEvent方法的作用是什么?说下View和ViewGroup分发事件? 8.0.0.2 onInterceptTo ...

  10. 三维模型3DTile格式轻量化压缩必要性分析

    三维模型3DTile格式轻量化压缩必要性分析 理解3DTile格式轻量化压缩的必要性,首先需要理解三维模型的复杂性和数据量.三维模型通常包含大量的顶点.面片和纹理信息,这使得其数据量非常大,尤其对于大 ...