C++学习day--06 向计算机输入数据

news2024/11/16 7:39:48

1、输入

当缓冲区为空时,程序才会暂停,让用户输入数据。
输入回车后,数据全部送到输入缓冲区。

#include <iostream>
#include <Windows.h>
int main( void ){
char girlType;
int salary;
float height;
std::cout << " 请输入您的理想类型 :\n A: 贤惠型 \n B: 泼辣新 \n C: 文艺型 \n D: 运动型 " << std::endl;
std::cin >> girlType;
std::cout << " 请输入您的月收入 :" << std::endl;
std::cin >> salary;
std::cout << " 请输入您的身高 :[ 单位 - ]" << std::endl;
std::cin >> height;
std::cout << " 您的理想类型是 : " << girlType << std::endl;
std::cout << " 您的月收入是 : " << salary << " " << std::endl;
std::cout << " 您的身高是 : " << height << " " << std::endl;
system( "pause" );
return 0;
}

对于 char, int, float 等基本数据类型, 直接使用 std::cin >> 输入即可 

特别注意 :
输出使用 std::cout <<
输入使用 std::cin >>
记忆诀窍 :
输入 , 需要一个很 >> 才能实现插入 .

2、常量

字面常量
int 类型字面常量: 1, 2, 3, 100
long 类型字面常量: 200L (或 200l, 建议用大写字母 L
注意:使用 vs 编译时,默认都是 win32 平台, 所以即使在 64 位系统中, long 也只有 4 个字节
long long 类型字面常量: 100000000000LL (一千亿,建议用大写字母 LL
char 类型字面常量: ’a’, ‘b’, ‘X’, ‘-’
float 类型字面常量: 3.14f或者3.14F
double 类型字面常量: 3.0 、3.14
16 进制常量:
123 = 1x100 + 2x10 + 3x1
0x11 ( 相当于 17)
以 0x 作为前缀
说明: 16 进制

 

8 进制常量
以 0 作为前缀
011( 相当于 9
说明: 16 进制和 8 进制,只是给程序员使用起来更方便,
在计算机中,数据都存储为 2 进制。
字面常量的缺点:
程序的可读性变差。
代码的可维护性差。
八进制和 16 进制的表
示形式要注意它们的
写法。面试喜欢问。
符号常量
1 #define 宏定义的符号常量
#define MAX_AGE 35
在编译的预处理阶段,直接把 MAX_AGE 替换为 35
2 const 修饰的符号常量
const int maxAge = 35;
maxAge = 30; // 错误!编译失败
注意: const 修饰的符号常量,又叫“只读变量”。 常变量
本质上,是一个变量,只是被 const 限制

3、常见错误总结

1. 变量名错误
变量名不能使用关键字
int char; // 编译失败
变量名不能和函数名同名
int system; // 会导致后面不能使用 system 函数
2. 变量还没有定义,就直接使用
age = 20;
变量一定要先定义,再使用。
3. 变量的输入与使用顺序不当
// 以下为错误代码
#include <iostream>
#include <Windows.h>
using namespace std;
int main( void ){
int age;
int num;
num = age * 360;
cout << " 请输入您的年龄 : " ;
cin >> age;
cout << " 这是您在地球的 " << num << " " << endl;
system( "pause" );
return 0;
}

num = age * 360; 

 

计算完字符, num age 没有任何关系!
而不是数学中的理解 : num 永远是 age 360 倍【不适用于 C C++

 4. 数据输入时,数据的类型不匹配

#include <iostream>
#include <Windows.h>
using namespace std;
int main( void ){
int age;
int num;
cout << " 请输入您的年龄 : " ;
cin >> age;
num = age * 360;
cout << " 这是您在地球的 " << num << " " << endl;
system( "pause" );
return 0;
}

运行结果:

 

 为什么??

输入的是字母 l 和 0,而不是数字1和0,因此出现了这个结果
类型不匹配,此时输入失败,变量的值还是原来的值
说明:
变量如果不做初始化,它的值是不确定的。
良好的编程习惯:变量在定义时,进行初始化:
int age = 0;
5. 输入数据时,前面的数据输入错误,导致后面的数据都不能输入
#include <iostream>
#include <Windows.h>
#include <string>
int main( void ) {
int a;
int b;
int c;
std::cin >> a >> b >> c;
std::cout << "a=" << a << std::endl;
std::cout << "b=" << b << std::endl;
std::cout << "c=" << c << std::endl;
system( "pause" );
return 0;
}

 

 解决方案:

#include <iostream>

#include <Windows.h>
#include <string>
using namespace std;
int main( void ) {
int a;
int b;
int c;
//std::cin >> a >> b >> c;
std::cout << " 请输入 a: " ;
std::cin >> a;
if (cin.fail()) { // 检查输入时是否发生了错误
cout << " 输入错误,应该输入一个整数 " << endl;
// 清除错误标记,使得后续输入可以正常进行
// 但是已经输入的数据还在输入缓冲区
cin.clear();
cin.sync(); // 清空输入缓冲区
}
std::cout << " 请输入 b: " ;
std::cin >> b;
if (cin.fail()) {
cout << " 输入错误,应该输入一个整数 " << endl;
cin.clear(); // 清除错误标记,使得后续输入可以正常进行
cin.sync(); // 清空输入缓冲区
}
std::cout << " 请输入 c: " ;
std::cin >> c;
if (cin.fail()) {
cout << " 输入错误,应该输入一个整数 " << endl;
cin.clear(); // 清除错误标记,使得后续输入可以正常进行
}
std::cout << "a=" << a << std::endl;
std::cout << "b=" << b << std::endl;
std::cout << "c=" << c << std::endl;
system( "pause" );
return 0;
}
if 语句的具体用法在后面会详细讲解。
更完美的解决方案, 使用 C++ 的异常(后面会精讲)。

 

4、计算机英语加油站

单词说明
char
character 字符
int
integer 整数
short
短的
long
长的
unsinged
无符号的
double
双倍的
float
浮动, 浮点数
name
名称,名字
password
密码
常简写为 pwd
precision
精度
应用: cout.precision(4)    默认是有效数字
flags
flag 的复数
flag: 标记
应用: cout.flags(xxx);
fixed
固定的
应用:cout.flags(cout.fixed); 设置精度为保留小数后几位
unset
复原
应用:cout.unsetf(cout.fixed);
取消设置精度为保留小数后
几位
const
常量
constant 不变的

5、职场修炼:怎样安全度过试用期

1、学员故事:
1. 未能完成项目任务,被辞退
2. 独立完成项目任务,仍被连续两次辞退
教训:
1. 认清自己的定位,个人包装不宜超过自己实际能力的 30%
2. 积极主动的做事,主动地与直接领导保持有效的沟通
3. 快速融入团队
4.2 程序员职场修炼:怎样安全度过试用期
2、程序员逼格提升:逼格初体验-代码风格
程序员的第一印象,不是外表,而是自己的代码风格。
1. 命名风格
2. 缩进风格
3. 注释风格
3、练习
#include <iostream>
#include <Windows.h>
using namespace std;
int main( void ) {
unsigned boyAge;
unsigned girlAge;
unsigned diff;
cout << " 美女,多大了 ?" << endl;

cin >> girlAge; // 输入 25
cout << " 帅哥,多大了 ?" << endl;
cin >> boyAge; // 输入 22
diff = girlAge - boyAge;
cout << " 美女比帅哥大 " << diff << " " << endl;
diff = boyAge - girlAge;
cout << " 帅哥比美女大 " << diff << " " << endl;
system( "pause" );
return 0;
}

结果:

 

说明: unsigned 类型,就是 unsigned int
分析:
在尾部添加如下代码:
unsigned short boyAge2 = boyAge;
unsigned short girlAge2 = girlAge;
unsigned short diff2 = boyAge2 - girlAge2;
cout << " 帅哥比美女大 " << diff2 << " " << endl; // 输出 65533
结论:
无符号数,不能表示负数!
如果强行用无符号数表示负数,实际存储的是这个负数对应的“补码”
即:该负数 + “模值”
-3 + 65536 = 65533
这是个简单的计算方法, 企业面试可能会问到。 这是个重点。从宏观上看,把一个负数赋值给一个无符号 变量。实际的值是:该负数 + 模值, short 类型模值为 2^16+1, char 类型模值为 2^8+1
依次类推。。。 其实本质存的是补码,只是改变了它的解释方式而已。参 考《计算机组成原理》

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/504405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录--极致舒适的Vue页面保活方案

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 为了让页面保活更加稳定&#xff0c;你们是怎么做的&#xff1f; 我用一行配置实现了 Vue页面保活是指在用户离开当前页面后&#xff0c;可以在返回时恢复上一次浏览页面的状态。这种技术可以让用户享…

shell脚本4函数

文章目录 shell脚本函数1 函数概述2 定义2.1 形式2.2 使用原则2.3 函数传参2.4 函数变量的作用范围 3 递归3.1 阶乘 4 函数库5 实验5.1 阶乘5.2 递归目录5.3 调用函数库 shell脚本函数 1 函数概述 1、将命令序列按格式写在一起 2、可方便重复使用命令序列 使用函数可以避免代码…

FS4067升压充电8.4V锂电池充电IC电流3A

FS4067升压型5V升压充电8.4V两串锂电池充电IC&#xff0c;工作电压范围于 2.7V 到 6.5V 的 PFM 升压型两节锂电池充电控制集成电路。 FS4067采用恒流和恒压模式对电池进行充电管理&#xff0c;内部集成有基准电压源&#xff0c; 电感电流检测单元&#xff0c;电池电压检测电路和…

【原创】强烈推荐三个可视化模块,绘制的图表真的很酷炫!!

Matplotlib是Python编程语言中最受欢迎的绘图库之一。它提供了一套面向对象的API&#xff0c;可将图表嵌入到使用通用GUI工具包&#xff08;如Tkinter、wxPython、Qt或GTK&#xff09;的应用程序中。Matplotlib还常用于创建静态、动画和交互式的Python数据可视化。它能够绘制各…

【Unity】在Unity下使用websocket的一些经验

首先&#xff0c;先上大家都知道的简介&#xff0c;这一版是我认为比较清晰的。。。虽然在度娘的教导和知乎的教导下&#xff0c;总算认识了websocket&#xff0c;但这个过程比较艰辛&#xff0c;给大家发出来看一下&#xff1a; --------------------------------------------…

精准测试之过程与实践 | 京东云技术团队

作者&#xff1a;京东工业 宛煜昕 一、怎样的技术 •百度百科&#xff1a; 精准测试是一套计算机测试辅助分析系统。 精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统…

苹果(ios)家庭APP广告推送,照片,相册,日历消息推送,【iMessage苹果推】,【苹果家庭推群发】,【imessage相册推送】

解决方案 若是你完全担任苹果的这个默许功效&#xff0c;那就不必要去编削任何代码。 如果&#xff0c;你原本就比较细心&#xff0c;曾经配置了modalPresentationStyle的值&#xff0c;那你也不会有这个影响。 对于想要找回本来默认交互的同学&#xff0c;直接设置以下便可&am…

携手共赢 HashData亮相华为合作伙伴大会

5月8日-9日&#xff0c;以“因聚而生 众志有为”为主题的“华为中国合作伙伴大会2023”在深圳国际会展中心举办。 HashData作为国内云原生数据仓库的代表企业&#xff0c;也是华为重要的生态合作伙伴。在本次大会上&#xff0c;HashData展示了云数仓领域最新前沿技术以及联合…

Java经典笔试题—day04

Java经典笔试题—day04 &#x1f50e;选择题&#x1f50e;编程题&#x1f95d;计算糖果&#x1f95d;进制转换 &#x1f50e;结尾 &#x1f50e;选择题 (1)下列与队列结构有关联的是&#xff08;&#xff09; A. 函数的递归调用 B. 数组元素的引用 C. 多重循环的执行 D. 先到…

Windows系统运行速度优化(系统内存扩充)!

之前有几篇文章&#xff0c;讲述了一些关于提升Windows系统运行速度的方法。链接如下&#xff1a; 如何让Windows系统10秒开机&#xff1f; 电脑运行卡顿怎么办&#xff1f;一招让Windows系统运行流畅 Windows系统重新安装后必须要做的优化 这里还有一个Windows系统的优化方法…

技术领先、“忠”于业务,用友走出多维数据库的价值之路

本文转自科技商业 作者 于洪涛 对于当今的企业而言&#xff0c;精细化管理&#xff0c;已经成为发展之源&#xff0c;甚至是生存之本。 尤其是随着数字化和智能化转型的推进&#xff0c;在企业经营管理过程中&#xff0c;数据正在日益发挥更为关键的要素作用。 相比过去&…

【Linux】Shell脚本之函数的操作+实战详解(建议收藏⭐)

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 shell脚本函数设置函数的意义函数的基…

物联网|蓝牙4.0BLE协议栈简介|IAR集成开发环境简介|IAR各版本下载链接|物联网之蓝牙4.0 BLE基础-学习笔记(2)

文章目录 129-142暂停&#xff0c;待续3、蓝牙4.0BLE协议栈简介4、IAR集成开发环境简介Tips: BLE协议结构图介绍Tips IAR各版本下载链接 129-142暂停&#xff0c;待续 3、蓝牙4.0BLE协议栈简介 问题: 1、什么是LE协议栈?BLE协识栈与BLE协议的关系&#xff1f; 协议&#xff…

数据结构与算法(Java版) | 队列的应用场景和介绍

队列的一个应用场景 给大家介绍完稀疏数组这种数据结构之后&#xff0c;接下来我再来给大家介绍另外一种数据结构&#xff0c;即队列。 队列&#xff0c;听其名而知其义&#xff0c;相信大家应该都在现实生活中见过&#xff0c;比如在火车站排队买票&#xff0c;或者在麦当劳…

轻NAS搭建 - 使用微力同步搭建私人云盘,无需公网IP也能远程访问

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸&#xff0c;虽然谈不上多么新颖&#xff0c;但是其…

图神经网络:在Cora数据集上动手实现图神经网络

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 代码实操1&#xff1a;GCN的复杂实现代码实操2&#xff1a;GCN的简单实现…

IntelliJ Platform-Plugins-获取方法相关信息(PsiElement/PsiMethodImpl)

PsiElement接口是文件中光标所在的那个字段&#xff0c;或者光标所在的那个方法的抽象&#xff0c;例如下图中PsiElement就是public String getName()&#xff0c;它的实现类是PsiMethodImpl 下面的代码会演示&#xff1a;如果光标在方法上&#xff0c;就打印方法名字&#x…

「Cpolar」内网穿透实现在外远程连接MongoDB数据库【端口映射】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…

第二十四章 Unity 纹理贴图

通常情况下&#xff0c;3D网格模型只能展示游戏对象的几何形状&#xff0c;而表面的细节则纹理贴图提供。纹理贴图通过UV坐标“贴附”在模型的表面。当然&#xff0c;这个过程不需要我们在Unity中完成&#xff0c;而是在建模软件中完成的。通常情况下&#xff0c;我们通过3ds m…

鸿蒙Hi3861学习九-Huawei LiteOS-M(互斥锁)

一、简介 互斥锁又被称为互斥型信号量&#xff0c;是一种特殊的二值信号量&#xff0c;用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种&#xff1a;开锁或闭锁。 当有任务占用公共资源时&#xff0c;互斥锁处于闭锁状态&#xff0c;这个任务获得该互斥锁的使用…