用C ++调整行高

时间:2016-10-19 16:33:43

标签: c++ iostream cout

我试图对我一直在写的迷宫计划进行最后的修改。我已经使用Unicode来划分墙壁和路径,但是由于(水平)线间距,我不能让它看起来足够紧凑。我附上了两个截图。我正在逃离新线" \ n"为了打印每一行。可以调整线条之间的距离,还是我坚持这个" gappy"代表性?

我的输出:

my output - with gaps between rows

我想要密切代表:

desired output - no gaps between rows

3 个答案:

答案 0 :(得分:2)

假设您没有打印双换行符,这超出了标准C ++的范围,它不提供以标准方式控制终端的工具。

解决方案:

  • 您可以提供一个启动器脚本,该脚本会打开一个包含特定字体的新终端窗口并在其中运行您的应用。
  • 你可以使用一些特定于平台的方法来改变背景颜色(ANSI代码可以在unixy终端中使用,或者使用Win32 API for Windows终端,在类Unix环境中使用ncurses库)并只打印不同颜色的空格。
  • 使用GUI库/框架来完全控制绘制的内容(我使用Qt for C ++ GUI app)。

答案 1 :(得分:0)

TBH如果你想要像素精确的渲染使用适当的渲染API,比如OpenGL。

从文本渲染的角度来看,您没有说明要呈现的内容。假设有类似终端控制台或shell窗口的东西,那么除了字符和换行符之外的布局与你的程序无关;视觉表示完全由您渲染的shell决定。

答案 2 :(得分:0)

首先,检查您是否真正在每个迷宫扫描线上打印一条线,而不是与虚假换行进行交错。假设排除了,问题是unicode字形不是一个完整的块。因此,您必须以某种方式设置字体或选择另一个完整块的字形。

通常控制台窗口宽80个字符,高22或24个字符,字符宽8个像素,高19个像素。因此,它距离正方形网格非常远,您可能希望偏向迷宫以反映它并提供更好的视觉外观(例如,使2像素宽的垂直走廊比2宽的水平走廊更常见)

检查二进制图像库字体,您可能会发现它们很有用。

https://github.com/MalcolmMcLean/binaryimagelibrary