C++ 基本的输入输出
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. 格式化输出(setw、setprecision)
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() | 检测输入失败 |
更多详细内容请关注其他相关文章!