1.2 初识输入输出

上一节讲解了 “输出”(std::cout),本节补充 “输入”(std::cin),并介绍 “如何通过输入输出实现程序与用户的交互”—— 核心是掌握std::cinstd::cout的基本用法,以及std命名空间的简化方式。

1.2.1 标准输入:std::cin

std::cin是 “标准输入流”(cin是 “console input” 的缩写),作用是 “从控制台读取用户输入的内容”,搭配 “输入运算符”>>使用。

示例:读取用户输入的两个整数并求和
#include<iostream>usingnamespace std;  // 简化std命名空间的使用(重点!)intmain(){    int a, b;  // 定义两个整数变量,用于存储用户输入    cout << "请输入两个整数(用空格分隔):";  // 提示用户输入    cin >> a >> b;  // 读取输入:将第一个数存入a,第二个数存入b    cout << "它们的和是:" << a + b << endl;  // 输出结果    return0;}
代码解析
  1. using namespace std;:简化命名空间

    • std

      是 C++ 标准库的命名空间(namespace)—— 命名空间的作用是 “隔离同名的标识符(如函数、变量、类)”,避免命名冲突(例如,你自己写的cout函数不会和标准库的cout冲突)。

    • 若不写using namespace std;,每次使用标准库组件都必须加std::(如std::cinstd::cout);写了之后,就可以直接用cincout,无需重复写std::

    • 注意:using namespace std;通常写在 “头文件包含之后、main()函数之前”,作用域是 “当前源文件”—— 对于简单程序,这是方便的写法;但在大型项目中,建议少用全局的using namespace std;(避免潜在的命名冲突),而是在需要的地方显式写std::,或用 “局部命名空间声明”(如在函数体内写using std::cout;)。

  2. cin >> a >> b;:读取输入

    • cin

      会自动 “跳过空白字符”(空格、制表符\t、换行符\n等)—— 用户输入时,无论用空格还是换行分隔两个数,cin都能正确读取。

    • 变量的类型必须与输入内容匹配:若变量是int(整数),用户输入了字母(如a),cin会进入 “错误状态”,后续读取会失败(后续章节会讲如何处理输入错误)。

    • >>

      是 “输入运算符”(也叫 “提取运算符”),作用是 “从左侧的流中提取内容,存入右侧的变量”。

    • 读取规则:

运行效果
请输入两个整数(用空格分隔):3 5它们的和是:8

1.2.2 输入输出的连续使用

<<>>都支持 “链式调用”—— 可以连续使用多个运算符,简化代码。例如:

  • 连续输出:cout << "a = " << a << ", b = " << b << endl;(先输出字符串"a = ",再输出a的值,再输出", b = ",再输出b的值,最后换行)。

  • 连续输入:cin >> a >> b >> c;(依次读取三个值,存入abc)。

1.3 注释

注释是 “写给人看的代码说明”,编译器会忽略注释内容 —— 合理的注释能让代码更易读、易维护。C++ 支持两种注释风格:

1.3.1 单行注释://

  • 语法:// 注释内容(从//开始到 “行末尾” 的所有内容都是注释)。

  • 适用场景:简短的注释(如单行代码的说明、变量含义)。

  • 示例:

int a = 10;  // 定义变量a,初始值为10(单行注释)// cin >> a;  // 这是一行被注释掉的代码(不会执行)

1.3.2 多行注释:/* ... */

  • 语法:/* 注释内容 */(从/*开始到*/结束的所有内容都是注释,可跨多行)。

  • 适用场景:较长的注释(如函数功能说明、代码块的逻辑解释)。

  • 示例:

/* * 函数功能:读取两个整数,计算并输出它们的和 * 输入:用户从控制台输入两个整数 * 输出:在控制台打印两个数的和 */int main() {    /* 变量定义区       a: 存储第一个整数       b: 存储第二个整数    */    int a, b;    cin >> a >> b;    cout << a + b << endl;    return 0;}

注释的注意事项

  1. 多行注释不能嵌套:即/* ... /* ... */ ... */是错误的 —— 编译器会将第一个/*和第一个*/匹配,剩余的... */会被当作代码,导致编译报错。

  2. 注释要 “简洁有用”:避免冗余注释(如// 定义变量a这种废话),也不要写 “过时的注释”(代码修改后,必须同步更新注释,否则会误导读者)。

  3. 单行注释优先:能用量行注释的场景,优先用//(比/* ... */更简洁,且避免嵌套问题)。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐