将五位整数(如 12345)分隔为 1 2 3 4 5,并用制表符分隔每个数字


#include<iostream>
using namespace std;
int main()
{
    int x;
    int a;
    int b;
    int c;
    int d;
    int e;
    cout << "Please enter a 5 digit integer.";
    cin >> x;
    a= x%10 ;
    b= x%100 %10;
    c= x%1000 %10;
    d= x%10000 %10;
    e= x%100000 %10;
    cout << a
         << b
         << c
         << d
         << e;

    return 0;
}

这就是我目前所拥有的,但我似乎无法<<每个数字都带有一个选项卡。我需要在每个数字之间添加一个制表符。

我没有看到问题。如果你想在每个数字之间有一个制表符,只需把它放在那里:

cout << a << 't'
     << b << 't'
     << c << 't'
     << d << 't'
     << e << 'n';

但是,这需要一个基于循环的解决方案,例如:

for (int div = 10000; div > 0; div /= 10)
    cout << (x / div) % 10 << 't';

或者,如果您希望最后一个是换行符而不是制表符:

for (int div = 10000; div > 1; div /= 10)
    cout << (x / div) % 10 << 't';
cout << x % 10 << 'n';

顺便说一下,你计算a/b/c/d/e表达式是错误的,它们都会给你最后一个数字。如果您仍然不想使用 loop 方法,请至少修复它:

a= x / 10000;
b= x /  1000 % 10;
c= x /   100 % 10;
d= x /    10 % 10;
e= x         % 10;

使用

cout<<a<<'t'<<b<<'t'<<c<<'t'<<d't'<<e;

编辑

对于您的问题,请将公式更改为:

a= x/10000   %10;
b= x/1000    %10;
c= x/100     %10;
d= x/10      %10;
e= x         %10;

最新更新