gpt4 book ai didi

c - 如何创建新行之前的隐形空间?

转载 作者:行者123 更新时间:2023-11-30 18:39:11 25 4
gpt4 key购买 nike

我是C语言的初学者。我最近正在编写一个程序来打印输入中字符实例数量的直方图。水平打印直方图很容易,但垂直打印是一个挑战。

请看下面的代码:

 #include <stdio.h>

int main()
{

/*THIS IS JUST A SAMPLE OF WHAT I WANT TO ASK*/
int occurrence = 5;
int i;

for (i=0;i<occurrence;i++){
printf("\t*\n");
}




}

举个例子,假设任何字母出现 5 次。所以我将出现次数设置为 5。并且我以星号的形式打印条形。现在通过这段代码,我可以打印包含 5 个星号的直方图。但问题是,如果我想打印其他元素,例如 x 轴和 y 轴,代码会创建一个 \n 字符。因此,如果我编写代码来打印其他元素,它们将从下一行开始打印。所以我想出了别的办法。

现在阅读这段代码:

#include <stdio.h>

int main()
{

/*THIS IS JUST A SAMPLE OF WHAT I WANT TO ASK*/
int instances = 5;
int i;

for (i=0;i<instances;i++){
printf("\t*\t\t\t\t\t\t\t\t\t");
}




}

现在我所做的是根据输出屏幕的大小,我创建了 9 个制表符,以便下一个星号移动到下一行而不打印任何 \n 字符。

现在的主要问题:是否有其他方法可以创建隐形空间,直到下一个要打印的内容移动到下一行?

这个问题可能很愚蠢,但如果有解决方案,那对我来说是最好的。

注意:如果没有这种创建空白的方法,那么请建议一种创建垂直直方图的好方法。如果有人想要即兴提出问题,我已经准备好了。

感谢您的帮助!

输出::

如果我使用第一个代码并使用 printf 语句创建其他图表元素,则输出如下: OUTPUT

现在您可以看到星号组成的条没有与 x 轴和 y 轴对齐。这是由于 \n 字符造成的。

最佳答案

您可能不想自己处理空格,而想研究一个可以为您处理所有图形内容的库。例如,ncurses是一个相当不错的库,可以在控制台上进行伪图形输出。然而,“ncurses”似乎仅适用于 Unix,但可能还有其他适用于 Windows 的库。

如果无法使用库,我建议使用二维字符缓冲区(将其视为位图),而不是直接将内容写入控制台。少了很多“摆弄”。只需注意在打印之前将缓冲区行大小截断为控制台行大小,以避免在不需要的地方自动换行。

关于c - 如何创建新行之前的隐形空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30737994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com