当前位置: 首页 > news >正文

[连载] C++ 零基础入门-4.C++ 键盘输入 cin 一步一步学

作者:咏方舟-长江支流 日期:2026-03-15

免费《C++ 零基础到底层实战-全套31篇 · 体系化教程》,从环境安装→基础语法 → 面向对象 → 多线程 → 智能指针 → 鸿蒙原生开发,一套打通:桌面开发 / 嵌入式 / 鸿蒙 / 高薪底层开发。

这是主线篇:带你先跑通、先学会、先建立信心。如果您喜欢请收藏

同时,针对每一篇,免费推出【C++ 刨根问底】,因为很多教程要么太表面,只教怎么写,不讲为什么(广度优先);而一上来就猛讲底层原理,又太深、太抽象,越听越懵(深度优先)。

刨根问底篇:等你有基础了,再带你挖透本质、真正精通。如果你觉得好,请点赞

刨根问底,才能真正懂得本质!知其然不知其所以然,从来不是我们程序员该有的态度。

🔰 C++零基础入门 · 第 4 篇:C++ 键盘输入 cin 一步一步学

✅ 标准C++ 🖥️ Windows VS2022 📱 鸿蒙 DevEco 🐧 Linux GCC 🍎 macOS Clang

📌 标准C++跨平台说明

本系列所有代码均采用标准C++,不依赖任何平台特有API。今天学习的HelloWorld,今后可以直接运行在鸿蒙Native C++工程、Linux、macOS等任何支持标准C++的环境。VS2022/2026是我们高效的开发工具,但你的代码属于全平台。


【C++ 零基础入门】第 4 篇:C++ 键盘输入 cin 一步一步学

本节目标

  • 熟练掌握从键盘输入数据的方法,运用cin实现基本数据类型的输入操作。
  • 能够利用cin完成简单加法计算器的编程实现,深入理解输入与计算逻辑的结合运用。

一、引言

在 C++ 编程中,与用户进行交互获取数据是一项基础且重要的技能。cin作为 C++ 标准库提供的输入流对象,承担着从键盘读取数据的关键任务。通过本篇内容,我们将深入了解cin的使用方式,并通过简单加法计算器示例,切实掌握如何将用户输入与程序逻辑相结合。

二、从键盘输入数据

(一)cin的基本使用

cin用于从标准输入(通常即键盘)读取数据,并借助提取运算符>>将数据存储到指定变量中。在使用前,需先声明与输入数据类型匹配的变量。例如在前面的章节

[连载] C++ 零基础入门-3.C++变量与数据类型 一步一步实战

中,我们在屏幕上打印学生信息,直接申明了变量age并赋值初始,这里,我们以申明整型变量age为例,由键盘输入,并将输入的整数,赋值给age变量,然后打印到屏幕,代码如下:

#include <iostream> using namespace std; int main() { // 定义变量 int age ; cout << "请输入年龄:" << endl; cin >> age; cout << "年龄:" << age << endl; return 0; }

此例中,程序提示输入年龄,等待用户在键盘输入一个整数,输入完成后(回车),该整数将被存储到 age 变量中,然后在屏幕上显示年龄:及输入的数字。

(二)连续读取多个数据

cin支持连续读取多个数据,只需依次在>>后列出接收数据的变量即可。比如:

int num1, num2; cin >> num1 >> num2;

此时,用户可在一行内输入两个整数,以空格、制表符或换行符分隔,建议用回车,程序会将其分别存储到num1num2中。

(三)输入类型匹配问题

确保输入数据类型与变量类型匹配至关重要。若输入类型不匹配,如尝试将字符串输入到int类型变量,会导致输入失败,cin会设置错误标志,影响后续输入操作。如下例:

int num; cin >> num; // 若输入 "abc",输入失败

为应对这种情况,可在输入后检查cin状态,并进行相应处理,例如为前面输入年龄代码,加上检查,当输入不是整数时,提示输入错误并清空错误标志:

#include <iostream> using namespace std; int main() { // 定义变量 int age = 0; cout << "请输入年龄:" << endl; cin >> age; if (cin.fail()) { cout << "输入错误,请输入一个有效的整数。" << endl; cin.clear(); // 清除错误标志 cin.ignore(numeric_limits<int>::max(), '\n'); //忽略输入缓冲区中的错误数据 } cout << "年龄:" << age << endl; return 0; }

三、完成简单加法计算器

下面,以输入两个整数,计算它们的和为例 ,演示cin功能,读者可以应用上面的cin.fail()知识点完善程序。

完整代码

#include <iostream> using namespace std; int main() { int a, b; // 输入 cout << "请输入第一个整数:"; cin >> a; cout << "请输入第二个整数:"; cin >> b; // 计算 int sum = a + b; cout << "两数之和:" << sum << endl; return 0; }

(一)代码逐行解析

1.包含头文件

#include <iostream>

#include指令用于将iostream头文件包含进程序,该头文件包含了输入输出流相关的定义,是使用cincout的必要前提。

2.使用命名空间

using namespace std;

通过这行代码,我们告知编译器在当前作用域内直接使用std命名空间中的标识符,这样就可以直接写cincout,而无需写成std::cinstd::cout。不过,在大型项目中,为避免潜在的命名冲突,可能更倾向于显式使用std::前缀。

3.变量声明

int a, b;

声明两个int类型变量ab,用于存储用户输入的两个整数,为后续加法运算做准备。

4.输入环节

cout << "请输入第一个整数:"; cin >> a; cout << "请输入第二个整数:"; cin >> b;

先使用cout输出提示信息,引导用户输入第一个整数,随后cin将用户输入的值读取并存储到a中。接着,再次通过cout提示输入第二个整数,cin读取并存储到b

5.计算过程

int sum = a + b;

将变量ab相加,并把结果存储在新变量sum中,完成加法计算。其中 = 为赋值符。

6.输出结果

cout << "两数之和:" << sum << endl;

利用cout将计算得到的两数之和输出。endl不仅起到换行作用,还会刷新输出缓冲区,确保数据及时显示。

7.返回值

return 0;

main函数返回0,按照惯例,表示程序正常结束。

四、总结

通过本节学习,我们达成了从键盘输入数据以及完成简单加法计算器的目标,深入掌握了cin的使用方法及其在实际编程中的应用。在后续学习中,我们将进一步探索 C++ 输入输出流库的更多功能,提升编程能力。若在学习过程中有任何疑问,欢迎随时交流。

同时请思考,输入类型匹配问题中应用cin.fail()检测了输入错误,如何让程序不仅提示让用户输入正确的值,而且直到输入正确为止?请在评论区说出你的答案...

感谢您读到这里!如果这篇文章或连载博文对您有所启发,欢迎点赞👍收藏、分享↗️ 给更多需要的朋友。您的每一次互动爱心❤️ ,都是我持续深耕技术、分享干货的最大动力。关注我,学习实用技术,分享快乐!😊

声明:本文作者咏方舟-长江支流相应内容版权归原作者所有,如需转载,请保留完整的内容及出处。

http://www.jsqmd.com/news/485753/

相关文章:

  • 背靠背两电平电路拓扑仿真研究:精细化控制实现高效并网与稳定输出
  • SD3.5-FP8优化技巧:如何进一步提升生成速度与图像质量
  • 2026杭州全自动封切包装机定制性价比,蓝景自动化优势明显 - 工业推荐榜
  • Lingbot-Depth-Pretrain-ViTL-14 构建智能监控系统:人群密度估计与异常行为检测
  • 2026优质鲁灰石材 鲁灰路沿石 火烧板 地铺石厂家推荐指南 - 资讯焦点
  • 关于在虚拟机安装RedHat详细过程
  • 量子位专访陶哲轩:我为什么现在创办一个AI x Science组织
  • 基于GD32F303的便携式教学数字示波器设计
  • Unity脚本如何关联本地已安装的Visual Studio工具并打开?
  • 深圳百达翡丽维修哪里好?6城高端腕表日常佩戴养护+品牌痛点破解 - 时光修表匠
  • CLIP ViT-H-14教育行业应用:教学图库智能分类与知识点关联检索
  • 【STS/Eclipse】tomcat配置及项目servlet运行相关问题
  • 比较不错的墙面装修专业公司怎么选,嘉宝莉陶乐嘉值得推荐吗? - myqiye
  • 智能搜索新选择:通义千问3-VL-Reranker-8B部署与API调用教程
  • 光学成像避坑指南:GS相位恢复算法在显微成像中的7个典型应用误区
  • 安装Android开发环境
  • 总结2026年江阴货运物流口碑排名,推荐靠谱好公司 - 工业品牌热点
  • 龙虾的热度确实高过能力,但它是普通人拥抱 AI 浪潮的第一步
  • 手把手教你学Simulink——基于Simulink的全向机器人横移与旋转解耦控制
  • 基于深度置信网络结合优化算法优化最小二乘支持向量机(DBN-LSSVM)的多输出数据回归预测
  • 新手必看:5分钟在星图AI云部署Qwen3-VL:30B,接入飞书智能办公
  • 20252915时进旭 2025-2026-2 《网络攻防实践》第一周作业
  • Hi3861+OpenHarmony轻量级Wi-Fi智能开关硬件设计
  • 从入门到实战:Java 函数式编程与高级工具类全解析
  • Phi-3-mini-128k-instruct Chainlit美化:响应卡片布局、引用高亮与来源标注功能
  • Jetson AGX Xavier刷机全攻略:从JetPack4.5安装到系统盘迁移(避坑指南)
  • 学术诚信与合理使用AI:降AI工具的边界在哪里 - 我要发一区
  • Qwen3-VL-4B Pro真实案例:街景图→交通分析→安全隐患文字报告
  • ComfyUI-Manager完全掌握指南:从环境配置到高级应用的实践路径
  • SenseVoice-Small模型文件结构与ONNX格式转换技术揭秘