C++ 从入门到精通C++ 从入门到精通
首页
基础教程
进阶教程
实战项目
编程指南
首页
基础教程
进阶教程
实战项目
编程指南
  • 🚀 C++ 基础入门

    • 📚 C++ 基础教程
    • 第1章 - 环境搭建和第一个程序
    • 第2章 - 变量和数据类型
    • 第3章 - 输入输出和运算符
    • 第4章 - 条件判断
    • 第5章 - 循环语句
    • 第6章 - 函数基础
    • 第7章 - 数组和字符串

第3章 - 输入输出和运算符

嗨,朋友!我是长安。

上一章我们学会了用变量"记住"数据。但你有没有发现,所有数据都是我们程序员写死在代码里的,用户不能参与。

这一章,我要教你两个超级实用的技能:

  1. 让用户输入数据(cin)
  2. 用各种运算符处理数据(+、-、*、/等)

学完这一章,你的程序就能和用户"对话"了!

🎤 获取用户输入

cin 的使用

在 C++ 中,用 cin 来获取用户从键盘输入的数据。

格式:

cin >> 变量名;

第一个输入示例

#include <iostream>
using namespace std;

int main() {
    int age;  // 先定义变量
    
    cout << "请输入你的年龄:";
    cin >> age;  // 获取用户输入
    
    cout << "你的年龄是:" << age << " 岁" << endl;
    
    return 0;
}

运行效果:

请输入你的年龄:18
你的年龄是:18 岁

解释:

  • cout << - 输出(让程序说话)
  • cin >> - 输入(让用户说话)
  • >> 箭头方向:数据从键盘流向变量

记忆技巧

  • cout 的箭头 << 指向左边(数据流向屏幕)
  • cin 的箭头 >> 指向右边(数据流向变量)

输入不同类型的数据

#include <iostream>
#include <string>
using namespace std;

int main() {
    string name;
    int age;
    double height;
    
    cout << "请输入你的姓名:";
    cin >> name;
    
    cout << "请输入你的年龄:";
    cin >> age;
    
    cout << "请输入你的身高(米):";
    cin >> height;
    
    cout << "\n==== 你的信息 ====" << endl;
    cout << "姓名:" << name << endl;
    cout << "年龄:" << age << " 岁" << endl;
    cout << "身高:" << height << " 米" << endl;
    
    return 0;
}

运行效果:

请输入你的姓名:张三
请输入你的年龄:20
请输入你的身高(米):1.75

==== 你的信息 ====
姓名:张三
年龄:20 岁
身高:1.75 米

一次输入多个值

你也可以在一行输入多个值:

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    
    cout << "请输入三个数字(用空格分隔):";
    cin >> a >> b >> c;
    
    cout << "你输入的数字是:" << a << ", " << b << ", " << c << endl;
    
    return 0;
}

运行效果:

请输入三个数字(用空格分隔):10 20 30
你输入的数字是:10, 20, 30

➗ 算术运算符

现在我们来学习如何用程序进行计算!

基本运算符

运算符含义示例结果
+加法5 + 38
-减法5 - 32
*乘法5 * 315
/除法10 / 25
%取余(求模)10 % 31

加减乘除示例

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 3;
    
    cout << "a = " << a << ", b = " << b << endl;
    cout << "a + b = " << (a + b) << endl;
    cout << "a - b = " << (a - b) << endl;
    cout << "a * b = " << (a * b) << endl;
    cout << "a / b = " << (a / b) << endl;
    cout << "a % b = " << (a % b) << endl;
    
    return 0;
}

输出:

a = 10, b = 3
a + b = 13
a - b = 7
a * b = 30
a / b = 3
a % b = 1

注意:整数除法

当两个整数相除时,结果也是整数,会丢弃小数部分!

int result = 10 / 3;  // 结果是 3,不是 3.333...

如果需要小数结果,至少有一个数要是小数:

double result = 10.0 / 3;  // 结果是 3.33333...

取余运算符 (%)

取余运算符 % 返回除法的余数。

cout << 10 % 3;  // 输出 1(10 除以 3 余 1)
cout << 15 % 4;  // 输出 3(15 除以 4 余 3)
cout << 20 % 5;  // 输出 0(20 除以 5 余 0,整除)

用途:

  • 判断奇偶数:num % 2 == 0 表示偶数
  • 判断能否整除:a % b == 0 表示 a 能被 b 整除

📊 复合赋值运算符

为了简化代码,C++ 提供了复合赋值运算符。

运算符等价于示例
+=a = a + ba += 5
-=a = a - ba -= 3
*=a = a * ba *= 2
/=a = a / ba /= 4
%=a = a % ba %= 3

示例

#include <iostream>
using namespace std;

int main() {
    int score = 80;
    
    cout << "初始分数:" << score << endl;
    
    score += 10;  // 相当于 score = score + 10
    cout << "加10分后:" << score << endl;
    
    score -= 5;   // 相当于 score = score - 5
    cout << "减5分后:" << score << endl;
    
    score *= 2;   // 相当于 score = score * 2
    cout << "翻倍后:" << score << endl;
    
    score /= 3;   // 相当于 score = score / 3
    cout << "除以3后:" << score << endl;
    
    return 0;
}

输出:

初始分数:80
加10分后:90
减5分后:85
翻倍后:170
除以3后:56

🔢 自增自减运算符

这是两个非常常用的运算符:

运算符含义示例说明
++自增(加1)a++ 或 ++a将 a 的值加1
--自减(减1)a-- 或 --a将 a 的值减1

示例

#include <iostream>
using namespace std;

int main() {
    int count = 10;
    
    cout << "初始值:" << count << endl;
    
    count++;  // 加1
    cout << "count++ 后:" << count << endl;
    
    count--;  // 减1
    cout << "count-- 后:" << count << endl;
    
    return 0;
}

输出:

初始值:10
count++ 后:11
count-- 后:10

前置和后置的区别

  • ++a(前置):先加1,再使用
  • a++(后置):先使用,再加1

初学阶段,建议单独使用,不要和其他语句混在一起,避免混淆。

🌟 实战案例

案例1:计算器

#include <iostream>
using namespace std;

int main() {
    double num1, num2;
    
    cout << "===== 简易计算器 =====" << endl;
    cout << "请输入第一个数字:";
    cin >> num1;
    
    cout << "请输入第二个数字:";
    cin >> num2;
    
    cout << "\n===== 计算结果 =====" << endl;
    cout << num1 << " + " << num2 << " = " << (num1 + num2) << endl;
    cout << num1 << " - " << num2 << " = " << (num1 - num2) << endl;
    cout << num1 << " * " << num2 << " = " << (num1 * num2) << endl;
    cout << num1 << " / " << num2 << " = " << (num1 / num2) << endl;
    
    return 0;
}

运行效果:

===== 简易计算器 =====
请输入第一个数字:10
请输入第二个数字:3

===== 计算结果 =====
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.33333

案例2:计算圆的面积和周长

#include <iostream>
using namespace std;

int main() {
    const double PI = 3.14159;  // 定义常量
    double radius;
    
    cout << "请输入圆的半径:";
    cin >> radius;
    
    double area = PI * radius * radius;        // 面积 = π × r²
    double circumference = 2 * PI * radius;    // 周长 = 2 × π × r
    
    cout << "\n===== 计算结果 =====" << endl;
    cout << "半径:" << radius << endl;
    cout << "面积:" << area << endl;
    cout << "周长:" << circumference << endl;
    
    return 0;
}

运行效果:

请输入圆的半径:5

===== 计算结果 =====
半径:5
面积:78.5398
周长:31.4159

什么是常量?

用 const 定义的变量叫常量,值不能被修改。

const double PI = 3.14159;  // 定义后不能再改变

常量名通常用大写字母。

案例3:温度转换(摄氏度转华氏度)

#include <iostream>
using namespace std;

int main() {
    double celsius;
    
    cout << "请输入摄氏温度:";
    cin >> celsius;
    
    // 华氏度 = 摄氏度 × 9/5 + 32
    double fahrenheit = celsius * 9.0 / 5.0 + 32;
    
    cout << celsius << "°C = " << fahrenheit << "°F" << endl;
    
    return 0;
}

运行效果:

请输入摄氏温度:25
25°C = 77°F

案例4:计算平均分

#include <iostream>
using namespace std;

int main() {
    double math, english, chinese;
    
    cout << "===== 成绩计算器 =====" << endl;
    cout << "请输入数学成绩:";
    cin >> math;
    
    cout << "请输入英语成绩:";
    cin >> english;
    
    cout << "请输入语文成绩:";
    cin >> chinese;
    
    double total = math + english + chinese;
    double average = total / 3;
    
    cout << "\n===== 统计结果 =====" << endl;
    cout << "总分:" << total << endl;
    cout << "平均分:" << average << endl;
    
    return 0;
}

运行效果:

===== 成绩计算器 =====
请输入数学成绩:95
请输入英语成绩:88
请输入语文成绩:92

===== 统计结果 =====
总分:275
平均分:91.6667

案例5:判断奇偶数

#include <iostream>
using namespace std;

int main() {
    int num;
    
    cout << "请输入一个整数:";
    cin >> num;
    
    int remainder = num % 2;
    
    cout << "这个数除以2的余数是:" << remainder << endl;
    
    if (remainder == 0) {
        cout << num << " 是偶数" << endl;
    } else {
        cout << num << " 是奇数" << endl;
    }
    
    return 0;
}

运行效果:

请输入一个整数:7
这个数除以2的余数是:1
7 是奇数

🎯 小结

这一章我们学习了输入输出和运算符,让我们回顾一下:

概念说明示例
cin获取用户输入cin >> age;
cout输出到屏幕cout << "Hello";
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余a % b
+=复合赋值a += 5
++自增a++
--自减a--
const定义常量const double PI = 3.14;

💪 练习题

动手练习才能真正掌握!来试试这些题目:

  1. 写一个程序,让用户输入两个数字,输出它们的和、差、积、商
  2. 写一个程序,让用户输入矩形的长和宽,计算并输出面积和周长
  3. 写一个程序,让用户输入三门课的成绩,计算并输出总分和平均分
  4. 写一个程序,让用户输入一个整数,判断它是奇数还是偶数
  5. 写一个程序,让用户输入商品单价和购买数量,计算总价
点击查看参考答案

题目2 参考答案:

#include <iostream>
using namespace std;

int main() {
    double length, width;
    
    cout << "请输入矩形的长:";
    cin >> length;
    
    cout << "请输入矩形的宽:";
    cin >> width;
    
    double area = length * width;
    double perimeter = 2 * (length + width);
    
    cout << "面积:" << area << endl;
    cout << "周长:" << perimeter << endl;
    
    return 0;
}

题目5 参考答案:

#include <iostream>
using namespace std;

int main() {
    double price;
    int quantity;
    
    cout << "请输入商品单价:";
    cin >> price;
    
    cout << "请输入购买数量:";
    cin >> quantity;
    
    double total = price * quantity;
    
    cout << "总价:¥" << total << endl;
    
    return 0;
}

🚀 下一步

太棒了!你现在已经能让程序和用户互动了,还能进行各种计算。

下一章,我们要学习条件判断,让程序能够根据不同情况做出不同的决定,变得更加"智能"!

➡️ 第4章 - 条件判断

最近更新: 2025/12/26 17:25
Contributors: 王长安
Prev
第2章 - 变量和数据类型
Next
第4章 - 条件判断