C ++整数位数逐行

时间:2014-11-27 08:31:44

标签: c++

我正在处理将整数值转换为每一行的项目。 例如:

23487

输出

2
3
4
8
7

我知道代码,如果我将使用字符串,但我认为如果我使用整数更好。

我当前的代码使用字符串:

#include <iostream>
#include <string>
using namespace std;
int main() {
string str("23487");
for (int i = 0; i < str.size(); i++){
    cout << str[i] << endl;
}
system("pause");
return 0;
}

如果我使用int而不是字符串,有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

对于大于0的整数值,您可以使用:

void Print(int val)
{
    if (val > 0)
    {
        Print(val/10);
        cout << val%10 << endl;
    }
}

答案 1 :(得分:0)

尝试

#include <stdio.h>

int main(int argc, char * argv[]) 
{

int value = 23487;

while(value > 0)
{
    int d = value % 10;

    value /= 10;

    printf("d = %d\n", d);
}

return 0;
}

请注意,数字将向后打印。

答案 2 :(得分:0)

试试这个...这段代码将打印出你想要的......:)

#include <iostream>
#include <string>
using namespace std;
int main() {
   int a=23487,ara[10],i=0,j;
    while(a)
    {
        ara[i++]=a%10;
        a/=10;
    }
    for(j=i-1;j>=0;j--)
    cout<<ara[j]<<endl;
    return 0;
}