返回 课程

模板 信奥AC之路(第一级)

0% 完成
0/0 步骤
  1. 第一课 开发环境与基础输出
    4 主题|小节
  2. 第二课 算数运算符
    6 主题|小节
  3. 第三课 输入与运算
    3 主题|小节
  4. 第四课 数值操作
    4 主题|小节
  5. 第五课 表达式与运算符
    3 主题|小节
  6. 第六课 三目运算与双分支(缺导语+本课目标)
    2 主题|小节
  7. 第七课 多分支结构(缺导语+本课目标)
    1 主题|小节
  8. 第八课 多if语句
    1 主题|小节
  9. 第九课 三种分支结构的比较
    1 主题|小节
  10. 第十课 巩固学习分支结构
    1 主题|小节
  11. 第十一课 switch与复合语句
    3 主题|小节
  12. 第十二课 while循环
    2 主题|小节
  13. 第十三课 while循环的简单条件输出
    1 主题|小节
  14. 第十四课 while循环的输入序列处理
    1 主题|小节
  15. 第十五课 while循环的复杂条件输出
    2 主题|小节
  16. 第十六课 while循环与数据统计
    1 主题|小节
  17. 第十七课 for循环结构
    3 主题|小节
  18. 第十八课 for循环的输入序列处理)
    1 主题|小节
  19. 第十九课 深入探索for循环
    2 主题|小节
  20. 第二十课 三种循环的对比
    2 主题|小节
  21. 第二十一课 程序调试(一)
    3 主题|小节
  22. 第二十二课 调试工具的使用
    2 主题|小节
  23. 第二十三课 综合复习
    2 主题|小节
  24. 第二十四课 学习评估
    1 主题|小节
课 3, 主题|小节 1
进行中

3.1 基本输入语句

2025年4月20日
课 进展
0% 完成

### 3.1.1 让计算机”听”懂我们的话

“还记得上一章我们是怎么让计算机说话的吗?” 我笑着问道。

“记得!用cout” 小明立刻举手回答。

“没错!” 我竖起大拇指,”就像我们有嘴巴说话用cout,现在我们要教会计算机用耳朵听话。计算机的’耳朵’,就叫做cin!”

![3-1计算机的耳朵cin示意图](/wp-content/uploads/2025/01/3-1计算机的耳朵cin示意图.jpg){.alignnone}

> 💡 重要提示:
>
> – cin是计算机的”输入耳朵”
> – 使用 “>>” 符号输入数据
> – 输入前要先准备变量”小房子”

🔬 **实验一:计算机学听话**
**预期输出:**

“`
你好啊,请告诉我你的年龄:12
原来你今年12岁啦!
“`

“`cpp
#include
using namespace std;

int main() {
int age; // 准备一个存放年龄的小房子

cout <> age; // 计算机竖起耳朵听,等待用户输入年龄

// 根据输入的年龄,给出响应
cout << "原来你今年" << age << "岁啦!" < 💡 scanf的特点:
>
> – 需要使用&符号指明地址
> – 要指定数据类型(%d, %f等)
> – 来自C语言的传统输入方式

🔬 **实验二:两种听力大比拼**
**预期输出:**

“`
请用cin输入一个数:5
请用scanf输入一个数:3
使用cin输入的数是:5
使用scanf输入的数是:3
“`

“`cpp
#include
#include // 需要包含这个头文件才能使用scanf
using namespace std;

int main() {
// 使用cin的方式
int number1;
cout <> number1; // 使用cin读取输入的数字

// 使用scanf的方式
int number2;
printf(“请用scanf输入一个数:”); // 提示用户输入
scanf(“%d”, &number2); // %d表示读取整数,&number2表示number2的地址

// 输出两种方式读取的结果
cout << "使用cin输入的数是:" << number1 < 💡 输入错误的处理方法:
>
> – 检查输入是否合法
> – 清除错误状态
> – 清空输入缓冲区
> – 给出友好提示

🔬 **实验三:处理听错的情况**
**预期输出:**

“`
请输入你的年龄:abc
哎呀,这不是一个正确的年龄呢!
请输入你的年龄:12
你今年12岁啦!
“`

“`cpp
#include
using namespace std;

int main() {
int age;
bool input_valid = false; // 用于标记输入是否有效

while(!input_valid) { // 循环直到获得有效输入
cout <> age;

if(cin.fail()) { // 检查输入是否失败
cout << "哎呀,这不是一个正确的年龄呢!" << endl;
cin.clear(); // 清除错误状态
cin.ignore(1000, '\n'); // 清空输入缓冲区
} else {
input_valid = true; // 输入有效,退出循环
cout << "你今年" << age << "岁啦!" << endl;
}
}

return 0;
}
“`

### 本节回顾

📌 我们学会了:

– 检查输入错误
– 处理错误状态
– 清空输入缓冲区