【C++练习】02C++计算两个整数的和
·
C++计算两个整数的和
读取用户输入并计算两个整数的和
在C++中,可以通过标准输入流 cin 读取用户输入,并使用 cout 输出结果。以下是一个完整的示例代码:
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入第一个整数: ";
cin >> num1;
cout << "请输入第二个整数: ";
cin >> num2;
int sum = num1 + num2;
cout << "两数之和为: " << sum << endl;
return 0;
}
代码解析
-
头文件引入
#include <iostream>用于引入输入输出流库,支持cin和cout操作。 -
变量声明
int num1, num2;声明两个整型变量,用于存储用户输入的值。 -
输入处理
cin >> num1和cin >> num2分别读取用户输入的两个整数。 -
计算与输出
int sum = num1 + num2计算两数之和,cout输出结果。
运行示例
假设用户输入 5 和 7,程序输出如下:
请输入第一个整数: 5
请输入第二个整数: 7
两数之和为: 12
扩展验证输入
若需处理非法输入(如非数字字符),可添加输入验证逻辑:
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入第一个整数: ";
while (!(cin >> num1)) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "输入无效,请重新输入: ";
}
cout << "请输入第二个整数: ";
while (!(cin >> num2)) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "输入无效,请重新输入: ";
}
cout << "两数之和为: " << num1 + num2 << endl;
return 0;
}
此代码在输入非整数时会提示重新输入。
详解cin
cin的基本概念
C++中的cin是标准输入流对象,属于iostream库,用于从用户输入(通常是键盘)读取数据。它与>>提取运算符结合使用,支持多种数据类型的输入。
cin的语法与使用
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter a number: ";
cin >> num; // 读取用户输入的整数
cout << "You entered: " << num;
return 0;
}
cin会跳过空白字符(如空格、换行符),直到遇到有效数据。- 支持链式输入:
cin >> a >> b;可连续读取多个变量。
cin的常见问题与解决方法
输入类型不匹配
若用户输入的数据类型与变量类型不匹配(如输入字符但变量为int),cin会进入错误状态,后续输入失效。
if (!(cin >> num)) {
cin.clear(); // 清除错误状态
cin.ignore(100, '\n'); // 忽略错误输入
cout << "Invalid input!";
}
处理字符串输入cin读取字符串时会在空格处终止。若需读取整行,使用getline:
string name;
cout << "Enter your full name: ";
cin.ignore(); // 清除之前残留的换行符
getline(cin, name); // 读取整行
cin与缓冲区的交互
cin从输入缓冲区读取数据,若缓冲区有残留数据(如换行符),可能导致意外行为。- 使用
cin.ignore(n, delim)可清除缓冲区中前n个字符或直到遇到分隔符delim(默认为'\n')。
性能优化
频繁使用cin可能降低效率,尤其在大量数据输入时。可调整同步性以提升速度:
ios_base::sync_with_stdio(false); // 禁用与C标准库的同步
cin.tie(nullptr); // 解绑cin与cout的关联
示例:完整输入验证
#include <iostream>
#include <limits>
using namespace std;
int main() {
int age;
while (true) {
cout << "Enter your age: ";
if (cin >> age && age > 0) {
break; // 输入有效
}
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Invalid input. Try again.\n";
}
return 0;
}
通过以上方法,可以高效且安全地使用cin处理用户输入。
更多推荐



所有评论(0)