C++ 重复printf以显示整数

C++ 重复printf以显示整数,c++,C++,我有以下代码 int x = 1; for (x; x<=4; x++) printf("%0*d\n",x,0); 我如何使输出继续 1 22 333 4444 我试过: printf("%x*d\n",x,0); 及 但它不起作用。如果可能,我只想使用一个for循环。您必须实际打印x次: 如果你能使用C++流,你可以使用填充方法来设置填充的字符,并使用SEtW商店修饰符来设置下一个输出操作的填充。 for(int x = 1 ; x <= 4; x++) {

我有以下代码

int x = 1;
for (x; x<=4; x++)
    printf("%0*d\n",x,0);
我如何使输出继续

1
22
333
4444
我试过:

printf("%x*d\n",x,0);


但它不起作用。如果可能,我只想使用一个for循环。

您必须实际打印x次:


如果你能使用C++流,你可以使用填充方法来设置填充的字符,并使用SEtW商店修饰符来设置下一个输出操作的填充。

for(int x = 1 ; x <= 4; x++)
{
    char prev = std::cout.fill(x + '0');
    std::cout << std::setw(x) << x << std::endl;
    std::cout.fill(prev);
}

请注意,这只适用于9以下的数字,我想这对您来说不是问题。

您应该阅读关于printf格式字符串的教程。。。以及C++上的一般情况。你试图混合很多东西,C++中的事情不像你期望的那样工作。如果可能的话,我只想用1来循环。为什么巴里我使用了这个方法,因为它返回了以前的填充字符,这样我就可以在以后恢复它。
printf("%" + x + "*d\n",x,0);
for (int x = 1; x <= 4; ++x) {
    for (int i = 0; i < x; ++i) {
        printf("%d", x);
    }
    printf("\n");
}
for (int x = 1; x <= 4; ++x) {
    for (int i = 0; i < x; ++i) {
        std::cout << x;
    }
    std::cout << '\n';
}
for (int x = 1; x <= 4; ++x) {
    std::cout << std::string(x, x + '0') << '\n';
}
for(int x = 1 ; x <= 4; x++)
{
    char prev = std::cout.fill(x + '0');
    std::cout << std::setw(x) << x << std::endl;
    std::cout.fill(prev);
}