3ER4 发表于 5 天前

从零开始学习C++语句(第一章)

本帖最后由 3ER4 于 2025-4-20 16:32 编辑

cout 是 C++ 中用于标准输出的核心工具,属于 iostream 库中的 ostream 类对象
extern istream cin;                ///< Linked to standard input
<font color="#0000ff">extern ostream cout;</font>                ///< Linked to standard output
extern ostream cerr;                ///< Linked to standard error (unbuffered)
extern ostream clog;                ///< Linked to standard error (buffered)

#ifdef _GLIBCXX_USE_WCHAR_T
extern wistream wcin;                ///< Linked to standard input
extern wostream wcout;      ///< Linked to standard output
extern wostream wcerr;      ///< Linked to standard error (unbuffered)
extern wostream wclog;
它通过流式操作实现数据输出,支持从简单文本到复杂格式化输出的多种场景。
以下从基础语法进行详细解析。   
一、cout 的基本用法 1. 头文件与命名空间必须包含头文件 <iostream>,并使用 std 命名空间(或显式使用 std::cout)。
命名空间:using namespace std;

以下为示范
#include <iostream>
using namespace std;// 或 std::cout
1.基本语法使用 << 运算符将数据插入输出流,endl 表示换行并刷新缓冲区:
cout << "示范" << endl;// 输出后换行并清空缓冲区2.输出内容类型支持所有基本数据类型(整数、浮点数、字符、字符串)及表达式:
int x = 10;//赋值语句
cout << x + 5 << " " << "Result is: " << true;// 输出:15 Result is: 1cin 是 C++ 中用于标准输入的核心工具,属于 iostream 库中的 istream 类对象。它通过流提取运算符 >> 实现数据读取,支持从键盘输入到复杂数据处理的多种场景。以下从基础语法、输入规则、缓冲区处理进行详细解析。


一、cin 的基本用法
[*]头文件与命名空间

[*]必须包含头文件 <iostream>,并使用 std 命名空间(或显式使用 std::cin)。
[*]基本语法:使用 >> 运算符将输入数据提取到变量中:int x;
cout << "请输入整数:";
cin >> x;// 从键盘读取整数到变量x
[*]输入类型匹配:输入值需与变量类型严格匹配,否则会导致输入失败或数据错误。例如,输入非数字字符到 int 变量会触发 failbit 标志。

二、多变量输入与分隔符
[*]连续输入:通过连续使用 >> 运算符可读取多个变量,输入数据间需用空格、制表符或换行分隔:string name;
int age;
cout << "请输入姓名和年龄:";
cin >> name >> age;// 输入示例:Alice 25 → name="Alice", age=25
[*]分隔符规则>> 运算符默认跳过前导空白符(空格、换行),但保留后续分隔符。例如输入 "123 456" 时,cin >> a >> b会成功提取 a=123和 b=456,但缓冲区仍残留换行符。

三、缓冲区与输入控制
[*]输入缓冲区:cin从输入缓冲区读取数据,输入结束时需按回车键将数据送入缓冲区。缓冲区中的换行符需手动清除,否则可能影响后续输入(如 getline会直接读取残留换行符)。
[*]清除缓冲区:使用 cin.ignore清除残留字符(如换行符):cin >> x;
cin.ignore(numeric_limits<streamsize>::max, '\n');// 清除所有字符直到换行符
[*]

[*]cin.get 与 getline

[*]cin.get:

[*]读取单个字符或固定长度字符串,保留换行符。
[*]示例:cin.get(array, 20) 读取最多 19 个字符到字符数组。
[*]getline:

[*]读取整行输入(包括空格),自动清除换行符。
[*]示例:getline(cin, str) 适合输入含空格的字符串。

目前还没有讲到高级特性,后续会将其详细话介绍,是从零到一的过程。希望对你们有用。

页: [1]
查看完整版本: 从零开始学习C++语句(第一章)