目录
在 C++ 中,基本的输入输出主要通过标准库中的 iostream
实现。iostream
提供了 std::cin
和 std::cout
对象来分别处理输入和输出。下面是一些关于如何使用这些工具进行基本输入输出的示例。
包含头文件
首先,你需要包含 iostream
头文件来使用输入输出流。
cpp
深色版本
#include <iostream>
using namespace std;
基本的输入输出
输出数据
使用 cout
对象来输出数据。cout
是一个预定义的对象,代表标准输出设备(通常是屏幕)。
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
endl
是一个操纵符,它会输出一个换行符,并刷新输出缓冲区。
输入数据
使用 cin
对象来读取用户输入的数据。cin
同样是一个预定义的对象,代表标准输入设备(通常是键盘)。
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
cout << "You entered: " << number << endl;
return 0;
}
格式化输入输出
输出格式化
你可以使用流中的操纵符来格式化输出。
cpp
深色版本
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double pi = 3.14159265358979323846;
cout << "The value of Pi is approximately " << setprecision(4) << fixed << pi << endl;
return 0;
}
在这个例子中,setprecision
设置了小数点后的精度,fixed
则使输出保持固定的小数位数。
输入格式化
使用 >>
时,cin
会跳过前导空白字符(如空格、制表符、换行符等)。如果需要读取包含空白字符的字符串,可以使用 getline
。
cpp
深色版本
#include <iostream>
#include <string>
using namespace std;
int main() {
string line;
cout << "Enter a line: ";
getline(cin, line);
cout << "You entered: " << line << endl;
return 0;
}
输入输出流的错误检测
你可以通过检查 cin
是否处于错误状态来判断输入是否成功。
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (cin.fail()) {
cout << "Invalid input." << endl;
cin.clear(); // 清除错误标志
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略错误输入
} else {
cout << "You entered: " << number << endl;
}
return 0;
}
多个输入输出流
你可以创建多个 ostream
和 istream
对象来处理不同的输入输出源。
cpp
深色版本
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream outFile("output.txt");
if (!outFile.is_open()) {
cerr << "Failed to open the file." << endl;
return 1;
}
cout << "Enter some text: ";
string text;
cin >> text;
outFile << "You entered: " << text << endl;
outFile.close();
ifstream inFile("output.txt");
if (!inFile.is_open()) {
cerr << "Failed to open the file." << endl;
return 1;
}
string line;
while (getline(inFile, line)) {
cout << line << endl;
}
inFile.close();
return 0;
}
示例:使用 iostream
进行简单的计算器
下面是一个简单的计算器示例,演示如何使用 iostream
进行输入输出:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
double num1, num2;
char op;
cout << "Enter an expression (e.g., 5 + 6): ";
cin >> num1 >> op >> num2;
switch (op) {
case '+':
cout << "Result: " << num1 + num2 << endl;
break;
case '-':
cout << "Result: " << num1 - num2 << endl;
break;
case '*':
cout << "Result: " << num1 * num2 << endl;
break;
case '/':
if (num2 != 0) {
cout << "Result: " << num1 / num2 << endl;
} else {
cout << "Error: Division by zero." << endl;
}
break;
default:
cout << "Invalid operator." << endl;
}
return 0;
}
总结
iostream
是 C++ 中处理输入输出的标准库,它提供了丰富的功能来支持基本的输入输出操作。通过 cout
和 cin
,你可以轻松地与用户交互,同时还可以使用各种流操纵符来格式化数据。理解和掌握这些基本的输入输出技巧,可以帮助你编写出更健壮和易于维护的程序。