C控制台 - 在同一行上打印图案

时间:2016-04-02 03:46:02

标签: c console

我正在尝试不同的活动,因为我是初学者,想要了解更多。我正在尝试在我的代码所在的同一行打印一个模式:

int main()
{
    int numOfWiggles;
    int count;
    printf("Enter number of wiggles: ");
    scanf("%d", &numOfWiggles);
    printf("_");
    for (count=1; count<=numOfWiggles; count++)
    {
        printf("/\\ \n   \\/ \r");
    }
    printf("-");
}

已编辑。

但是我不希望将它们放在新的一行上,而是希望模式只延伸到同一行。我知道这是因为\n,但我不知道如何在同一条线上完成所有操作。

2 个答案:

答案 0 :(得分:1)

你可以把它分为上下两部分 打印上半部分使用:

for (count=1; count<=numOfWiggles; count++)
{
    printf("/\\  ");  //this will print /\  /\  /\
}
printf("\n  ");   // go to next line

打印下半部分使用:

for (count=1; count<=numOfWiggles; count++)
{
    if(count == numOfWiggles)
        printf(" \\/");  // this will print last \/ without space at the end
    else
        printf(" \\/ ");  // this will print \/ \/ \/
}

您正在使用'\ n',它会将光标位置移到下一行并从下一行开始打印,这是问题所在。

答案 1 :(得分:0)

您正在寻找的结果实际上是两条不同线路上两次打印的结果。您可以使用缓冲区在相同的循环中构造字符串,或者只使用两个循环。

for (count = 0; count <  numOfWiggles; count++)
{
    If (count == 0)
        Printf ("_/\");
    Else
        Printf ("  /\");
    Printf ("  _/n");
}

for (count = 0; count <  numOfWiggles; count++)
{
    If (count == 0)
        Printf ("   \/");
    Else
        Printf ("  \/");
    Printf ("/n");
}