C++输入输出
C++中,你可以使用cout和cin进行格式化输出和输入。下面是几个示例,演示如何使用格式化控制符来控制输出和输入的格式。
格式化输出示例:
输出浮点数时指定小数点位数:
#include <iostream> #include <iomanip> using namespace std; int main() { double number = 123.45678; cout << fixed << setprecision(2) << number << endl; // 输出: 123.46 return 0; }
设置输出字段宽度:
#include <iostream> #include <iomanip> using namespace std; int main() { int num1 = 123; int num2 = 45678; cout << setw(10) << num1 << setw(10) << num2 << endl; // 输出: " 123 45678" return 0; }
格式化输入示例
从用户输入中读取整数:
#include <iostream> using namespace std; int main() { int num; cout << "请输入一个整数: "; cin >> num; cout << "您输入的整数是: " << num << endl; return 0; }
从用户输入中读取浮点数:
#include <iostream> #include <iomanip> using namespace std; int main() { double num; cout << "请输入一个浮点数: "; cin >> num; cout << "您输入的浮点数是: " << fixed << setprecision(2) << num << endl; return 0; }
不同数制输出格式
十进制数制输出
#include <iostream> using namespace std; int main() { int decimalNumber = 123; cout << "十进制数:" << decimalNumber << endl; // 输出:十进制数:123 return 0; }
八进制数制输出:
#include <iostream> #include <iomanip> using namespace std; int main() { int octalNumber = 0123; // 八进制数,前面加0表示 cout << "八进制数:" << oct << octalNumber << endl; // 输出:八进制数:123 return 0; }
十六进制数制输出:
#include <iostream> #include <iomanip> using namespace std; int main() { int hexadecimalNumber = 0x1A; // 十六进制数,前面加0x表示 cout << "十六进制数:" << hex << uppercase << hexadecimalNumber << endl; // 输出:十六进制数:1A return 0; }
cin输入出错或者异常处理
在C++中,可以使用异常处理机制来处理cin输入的错误或异常情况。通常,cin可能会在以下情况下引发异常或错误:
- 非法输入数据类型: 用户输入的数据类型与期望的不匹配。
- 流状态错误: 例如,当文件结束或文件读取错误时。
- 输入缓冲区溢出: 用户输入的数据超出了程序预期的范围。
以下是一些处理cin输入异常的方法,使用了C++的异常处理机制:
#include <iostream> #include <stdexcept> using namespace std; int main() { int num; try { cout << "请输入一个整数: "; if (!(cin >> num)) { throw runtime_error("输入无效"); // 抛出运行时异常 } // 处理正常输入 cout << "您输入的整数是: " << num << endl; } catch (const exception& e) { cerr << "发生异常: " << e.what() << endl; // 清除输入缓冲区 cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } return 0; }
在上述示例中,我们使用了try和catch块来处理异常情况。如果用户输入的不是整数,cin会抛出一个异常,然后我们在catch块中捕获并处理异常,输出错误消息并清除输入缓冲区。
在异常处理中,你可以采取适当的措施,例如重新请求用户输入、输出错误消息、记录错误等,以便更好地处理cin输入引发的异常。
请注意,异常处理是一种处理输入错误的一种方法,但不是唯一的方法。你还可以使用其他方式来验证和处理输入,根据具体需求来选择最合适的方法。