[连载] 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变量,然后打印到屏幕,代码如下:

cpp 复制代码
#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 状态,并进行相应处理,例如为前面输入年龄代码,加上检查,当输入不是整数时,提示输入错误并清空错误标志:

cpp 复制代码
#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()知识点完善程序。

完整代码

cpp 复制代码
#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()检测了输入错误,如何让程序不仅提示让用户输入正确的值,而且直到输入正确为止?请在评论区说出你的答案...

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

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

相关推荐
橙子也要努力变强2 小时前
进程间通信基础
c++·操作系统
橙子也要努力变强2 小时前
共享内存通信
网络·c++·操作系统
浅念-2 小时前
C++11 核心知识点整理
开发语言·数据结构·c++·笔记·算法
xiaoye-duck2 小时前
《算法题讲解指南:递归,搜索与回溯算法--二叉树中的深搜》--6.计算布尔二叉树的值,7.求根节点到叶节点数字之和
c++·算法·深度优先·递归
liuyao_xianhui2 小时前
递归_反转链表_C++
java·开发语言·数据结构·c++·算法·链表·动态规划
CoderCodingNo2 小时前
【GESP】C++七级考试大纲知识点梳理 (3) 图论基础与遍历算法
c++·算法·图论
勇闯逆流河2 小时前
【Linux】Linux基础开发工具(git、dbg)
linux·运维·服务器·开发语言·c++·git
小温冲冲2 小时前
C++与QML交互指南:从基础到实战
开发语言·c++·交互
智者知已应修善业2 小时前
【不用第三变量交换2个数】2024-10-18
c语言·数据结构·c++·经验分享·笔记·算法