C++ 基本的输入输出
                           
天天向上
发布: 2025-03-29 15:10:28

原创
511 人浏览过

C++ 的输入输出主要依赖于 标准输入输出流库 <iostream>。它提供了 cin(输入)、cout(输出)、cerr(错误输出)和 clog(日志输出),用于控制台输入输出操作。


1. cout 标准输出

cout(Console Output)用于向标准输出(控制台)打印数据。

1.1 输出基本数据

#include <iostream>

int main() {
    std::cout << "Hello, C++!" << std::endl;
    return 0;
}

解释:

  • std::cout:用于输出文本或变量到控制台。
  • <<(流插入运算符):用于连接 cout 和要输出的内容。
  • std::endl:换行(等效于 "\n"),同时会刷新输出缓冲区。

输出:

Hello, C++!

1.2 输出多个变量

#include <iostream>

int main() {
    int a = 10;
    double b = 3.14;
    std::cout << "a = " << a << ", b = " << b << std::endl;
    return 0;
}

输出:

a = 10, b = 3.14

2. cin 标准输入

cin(Console Input)用于从标准输入(键盘)读取数据。

2.1 读取单个变量

#include <iostream>

int main() {
    int age;
    std::cout << "请输入你的年龄: ";
    std::cin >> age;
    std::cout << "你的年龄是: " << age << std::endl;
    return 0;
}

输入示例:

请输入你的年龄: 25

输出:

你的年龄是: 25

2.2 读取多个变量

#include <iostream>

int main() {
    int x;
    double y;
    std::cout << "请输入整数和小数(用空格分隔): ";
    std::cin >> x >> y;
    std::cout << "你输入的整数: " << x << ", 小数: " << y << std::endl;
    return 0;
}

输入示例:

请输入整数和小数(用空格分隔): 10 5.67

输出:

你输入的整数: 10, 小数: 5.67

3. cerr 错误输出

cerr(Console Error)用于输出错误信息,不会被缓冲(即时输出)。

#include <iostream>

int main() {
    std::cerr << "发生错误: 无效输入!" << std::endl;
    return 0;
}

输出(到标准错误流):

发生错误: 无效输入!

4. clog 日志输出

clog(Console Log)用于输出日志信息,是缓冲输出(不会立即刷新)。

#include <iostream>

int main() {
    std::clog << "日志信息: 程序正在运行..." << std::endl;
    return 0;
}

输出(到标准日志流):

日志信息: 程序正在运行...

5. 处理字符串输入

5.1 cin 读取单词

cin 只会读取第一个空格前的字符

#include <iostream>

int main() {
    std::string name;
    std::cout << "请输入你的名字: ";
    std::cin >> name;
    std::cout << "你好, " << name << "!" << std::endl;
    return 0;
}

输入示例:

请输入你的名字: 张三 李四

输出:

你好, 张三!

注意: "李四" 被忽略,因为 cin 遇到空格会停止读取。


5.2 getline() 读取整行

如果需要读取包含空格的字符串,使用 getline()

#include <iostream>
#include <string>

int main() {
    std::string fullName;
    std::cout << "请输入你的全名: ";
    std::getline(std::cin, fullName);
    std::cout << "你好, " << fullName << "!" << std::endl;
    return 0;
}

输入示例:

请输入你的全名: 张三 李四

输出:

你好, 张三 李四!

6. 格式化输出(setwsetprecision

C++ 提供 <iomanip> 头文件用于格式化输出。

#include <iostream>
#include <iomanip>

int main() {
    double pi = 3.1415926535;

    std::cout << "默认输出: " << pi << std::endl;
    std::cout << "保留两位小数: " << std::fixed << std::setprecision(2) << pi << std::endl;
    std::cout << "字段宽度 10: " << std::setw(10) << pi << std::endl;

    return 0;
}

输出:

默认输出: 3.14159
保留两位小数: 3.14
字段宽度 10:       3.14

7. 处理输入失败(cin.fail()

如果用户输入错误的数据类型,cin 会进入错误状态,可以用 cin.fail() 检测:

#include <iostream>

int main() {
    int number;
    std::cout << "请输入一个整数: ";
    std::cin >> number;

    if (std::cin.fail()) {
        std::cin.clear();  // 清除错误状态
        std::cin.ignore(100, '\n');  // 忽略错误输入
        std::cout << "输入无效,请输入整数!" << std::endl;
    } else {
        std::cout << "你输入的整数是: " << number << std::endl;
    }

    return 0;
}

输入示例:

请输入一个整数: abc

输出:

输入无效,请输入整数!

总结

操作用法
std::cout <<标准输出
std::cin >>标准输入
std::cerr <<错误输出(不缓冲)
std::clog <<日志输出(缓冲)
std::getline(cin, str)读取一整行(包含空格)
std::setw(n)设定字段宽度
std::setprecision(n)设置小数精度
std::cin.fail()检测输入失败

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *