读入一个正整数num(0<=num<=999),求出num的百位数字、十位数字和个位数字 C++
时间: 2024-09-27 19:05:52 浏览: 37
在C++中,你可以通过将输入的正整数转换成字符串,然后分割这个字符串来获取每个数字。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
int main() {
int num;
std::cout << "请输入一个0到999之间的正整数: ";
std::cin >> num;
// 将整数转为字符串
std::stringstream ss(std::to_string(num));
// 提取每一位数字
char hundreds, tens, ones;
ss >> hundreds; // 百位
if (ss) {
ss >> tens; // 十位
if (ss) {
ss >> ones; // 个位
}
}
std::cout << "百位数字: " << hundreds << ", 十位数字: " << tens << ", 个位数字: " << ones << std::endl;
return 0;
}
```
在这个程序中,我们首先从用户那里读取一个整数`num`。接着,我们创建一个`std::stringstream`并传入它的构造函数`std::to_string(num)`,这会将整数转换为字符串。然后我们逐次从中提取百位、十位和个位数字。
如果输入的数值小于100(即只有一位),那么十位和个位就是空字符`'\0'`。因此,在每次读取之后需要检查`ss`是否还有剩余内容,如果没有,则说明已经到达了最低位。
阅读全文