2.3 cin输入语句

正在加载视频播放器…

GESP C++ 一级:cin 输入语句精讲

核心目标:会用 cin 从键盘读入数据,能按题目要求正确读入整数、小数、字符,理解连续输入和空白字符处理。
cin 用 >> 把键盘输入的数据送到变量里,自动跳过空格、换行、制表符,但不能直接读入空格。


一、cin 是什么

cin 是 C++ 的标准输入流对象,用于从键盘读入数据。

使用前需要:

#include <iostream>
//(#include<bits/stdc++.h> 使用万能头更方便)
//视频内均使用万能头
using namespace std;

基本形式:

cin >> 变量;
  • cin:输入目标,代表键盘。
  • >>:流提取运算符,把输入流中的数据提取到右边的变量中。
  • ;:语句结束,必须写。

记忆口诀:

cin 用 >>,数据从键盘流入变量;
cout 用 <<,数据从变量流向屏幕。

二、基本语法

1. 输入一个变量

int a;
cin >> a;

程序运行后,等待用户输入一个整数,按回车后,这个数被存入 a。

2. 连续输入多个变量

int a, b;
cin >> a >> b;

等价于:

cin >> a;
cin >> b;

输入时可以用空格或换行分隔:

3 5

或:

3
5

都可以。

3. 输入和输出配合

int a, b;
cin >> a >> b;
cout << a + b << endl;

输入:

3 5

输出:

8

三、输入不同类型的数据

类型 写法示例 输入说明
整数 int a; cin >> a; 输入整数,如 123
长整数 long long x; cin >> x; 输入大整数
浮点数 double d; cin >> d; 输入小数,如 3.14
字符 char c; cin >> c; 输入一个字符,跳过空白
布尔值 bool f; cin >> f; 通常输入 0 或 1

示例:

int a;
double b;
char c;
cin >> a >> b >> c;

输入:

10 2.5 A

则:

a = 10
b = 2.5
c = 'A'

四、空白字符的处理

1. cin >> 会自动跳过空白

空白字符包括:

  • 空格
  • 换行
  • 制表符(Tab)

例如:

int a, b;
cin >> a >> b;

输入:

   3
   5

程序仍然能正确读入 a = 3,b = 5。因为 cin >> 会自动跳过前面的空格和换行。

2. cin >> 不能读入空格

char c;
cin >> c;

如果输入:

 A

c 得到的是 'A',前面的空格被跳过了。

如果输入:

空格

cin >> c 会一直等待,直到读到非空白字符。所以它不能用来读入空格本身。

3. 想读入空格怎么办

使用 cin.get():

char c;
cin.get(c);

cin.get(c) 会读取任意一个字符,包括空格和换行。

一级考试中,cin.get() 属于了解内容,重点还是 cin >>。


五、字符输入专题

1. 连续输入两个字符

char a, b;
cin >> a >> b;

输入:

A B

结果:

a = 'A'
b = 'B'

输入:

AB

结果:

a = 'A'
b = 'B'

因为 cin >> 会跳过空白,所以 A B 和 AB 效果一样。

2. 输入数字和字符混合

int n;
char c;
cin >> n >> c;

输入:

5 A

结果:

n = 5
c = 'A'

输入:

5A

结果:

n = 5
c = 'A'

输入:

5
A

结果:

n = 5
c = 'A'

因为 cin >> c 会跳过换行。

3. 字符输入易错点

char c;
cin >> c;   // 会跳过空格和换行

如果题目要求读入一个空格,不能直接用 cin >> c。


六、输入多个数据

1. 输入固定个数

int a, b, c;
cin >> a >> b >> c;

输入:

1 2 3

或:

1
2
3

都可以。

2. 输入到数组(一级不要求)

一级不考数组,但循环读入多个数可能涉及:

int n;
cin >> n;
for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    // 处理 x
}

3. 读入直到结束(拓展)

int x;
while (cin >> x) {
    // 处理 x
}

按 Ctrl+Z(Windows)或 Ctrl+D(Linux)表示输入结束。一级了解即可。


七、常见输入模型

1. 两个数求和

int a, b;
cin >> a >> b;
cout << a + b << endl;

2. 三个数求最大值

int a, b, c;
cin >> a >> b >> c;
int maxv = a;
if (b > maxv) maxv = b;
if (c > maxv) maxv = c;
cout << maxv << endl;

3. 输入字符判断大小写

char c;
cin >> c;
if (c >= 'a' && c <= 'z') {
    cout << "小写字母";
} else if (c >= 'A' && c <= 'Z') {
    cout << "大写字母";
} else {
    cout << "其他";
}

4. 输入小数求平均

double a, b;
cin >> a >> b;
cout << fixed << setprecision(2) << (a + b) / 2 << endl;

需要:

#include <iomanip>

八、易错点

  1. cin 写成 cout,或 >> 写成 <<。

    cin << a;  // 错误
    cin >> a;  // 正确
    
  2. 漏写分号。

    cin >> a  // 错误,缺少 ;
    
  3. 变量未声明。

    cin >> a;  // 错误,a 未定义
    int a;
    
  4. 类型不匹配。

    int a;
    cin >> a;  // 如果输入 3.14,a 只会得到 3
    
  5. 用逗号分隔输入。

    cin >> a >> b;
    

    输入必须用空格或换行分隔,不能写 3,5。
    如果输入 3,5,a 会得到 3,b 读入失败。

  6. 输入字符时忘记跳过空白。

    char c;
    cin >> c;  // 空格会被跳过
    
  7. 输出多余提示语。
    考试时不要写:

    cout << "请输入两个数:";
    cin >> a >> b;
    

    这可能导致输出格式错误。

  8. 中文标点。

    cin >> a;  // 错误,中文分号
    
  9. 忘记 #include <bits/stdc++.h> 或 using namespace std;。

  10. 输入顺序写错。

    int a, b;
    cin >> b >> a;  // 先读入的给 b,再给 a
    

九、阅读程序写结果

题目 1

int a, b;
cin >> a >> b;
cout << a + b << endl;

输入:

3 5

输出:

8

题目 2

char c;
cin >> c;
cout << c << endl;

输入:

A

输出:

A

题目 3

char a, b;
cin >> a >> b;
cout << a << "-" << b << endl;

输入:

X Y

输出:

X-Y

题目 4

int n;
char c;
cin >> n >> c;
cout << n << " " << c << endl;

输入:

5A

输出:

5 A

题目 5

int a, b;
cin >> a >> b;
cout << a / b << " " << a % b << endl;

输入:

7 3

输出:

2 1

十、速查表

需求 写法
输入整数 int a; cin >> a;
输入小数 double x; cin >> x;
输入字符 char c; cin >> c;
连续输入多个 cin >> a >> b >> c;
输入空格分隔 直接写 cin >> a >> b;
输入换行分隔
读入空格字符 cin.get(c);
输入结束 Ctrl+Z 或 Ctrl+D
循环读入 while (cin >> x) { ... }

十一、与 cout 的对比

项目 cin cout
作用 从键盘输入 向屏幕输出
运算符 >> <<
方向 数据流入变量 数据流出到屏幕
示例 cin >> a; cout << a;
自动跳过空白 会跳过空格、换行 不涉及
换行 输入时自动跳过 需要自己加 endl 或 \n

十二、总结

cin 是一级考试中最重要的输入工具。

  1. cin >> 变量; 从键盘读入数据到变量。
  2. >> 可以连续使用,按顺序给变量赋值。
  3. 输入时用空格或换行分隔,cin 会自动跳过空白。
  4. cin >> 不能读入空格。

复习时多练“输入两个数求和”“输入字符判断”“输入多个数计算”等题型,注意变量顺序、类型匹配、分号和引号。考试时不要输出多余提示语,输入格式要严格按题目要求。