(2)从键盘中输入一个4位的整数,输出各个数据位。请将实训过程填入表3-2-6中,
时间: 2024-11-13 11:27:36 浏览: 14
C语言求一个正整数的位数
3星 · 编辑精心推荐
实训过程 - 分析需求
1. **明确目标**: 用户需要输入一个四位的整数,然后程序应将其拆分为个位、十位、百位和千位,分别输出每个位置的数值。
2. **设计思路**:
a. 提示用户输入四位整数
b. 接收用户输入,并存储到一个变量中
c. 检查输入是否满足四位数,如果不是,则提示用户重新输入
d. 将四位数转换成字符串便于操作
e. 分割字符串为四个部分(个位、十位、百位、千位)
f. 输出每位的数值
3. **编写代码片段**:
```cpp
#include <iostream>
#include <string>
int main() {
int number;
std::cout << "请输入一个四位整数: ";
while (!(cin >> number) || number > 9999 || number < 1000) { // 验证输入
std::cin.clear(); // 清除可能的输入错误标志
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 清空缓冲区
std::cerr << "输入错误,请输入一个四位整数: ";
}
std::string strNumber = std::to_string(number); // 转换为字符串
std::string digit[4] = {strNumber.substr(3), strNumber.substr(2), strNumber.substr(1), strNumber.substr(0)}; // 分割
for (int i = 0; i < 4; ++i) {
std::cout << "第" << (i+1) << "位: " << digit[i] << std::endl;
}
return 0;
}
```
4. **测试和调试**:
输入一些四位整数,验证是否能正确分割并输出各位数字。如果出现错误,检查输入验证和字符串操作的部分。
**相关问题--:**
1. 如何防止用户输入超出四位的情况?
2. 为什么在输入验证阶段需要清除输入流的错误标志?
3. 这段代码是如何处理非整数输入的?
阅读全文