如何使用c?
更改打印字体的字体大小 printf ("%c", map[x][y]);
我想要打印一个比程序中所有其他文本更大的数组。有没有办法让声明打印得更大?
答案 0 :(得分:4)
尽管teppic's answer使用system()
会起作用,但是为了做到这一点,调用外部程序却相当严厉。至于David RF' answer,它是硬编码的特定类型的终端(可能是兼容VT100的终端类型),不支持用户的实际终端类型。
在C中,您应该直接使用terminfo功能:
#include <term.h>
/* One-time initialization near the beginning of your program */
setupterm(NULL, STDOUT_FILENO, NULL);
/* Enter bold mode */
putp(enter_bold_mode);
printf("I am bold\n");
/* Turn it off! */
putp(exit_attribute_mode);
但是,正如teppic所述,不支持更改字体大小。这是在用户的控制之下。
答案 1 :(得分:1)
如果它是Linux(可能还有其他形式的Unix)你可以使用system
来改变一些终端设置以使其脱颖而出 - 尽管不是字体大小。这种东西真的只适合简单的程序,而且显然不便携:
#include <stdio.h>
#include <stdlib.h>
[...]
printf("Normal text\n");
system("setterm -bold on");
printf("Bold text\n");
system("setterm -bold off");
否则,您可以通过printf
直接发送各种终端序列,这些序列将控制大多数Unix终端应用程序,例如: \033[31m
会在xterm中将文本更改为红色。但这些序列可能会有所不同。
答案 2 :(得分:1)
如果您使用某些unix,则可以尝试激活和停用粗体文本:
printf("\033[1m%c\033[0m", map[x][y]);
答案 3 :(得分:0)
此代码将在Win32应用程序上运行(无论使用什么子系统:WINDOWS或CONSOLE):
inline void setFontSize(int a, int b)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx = new CONSOLE_FONT_INFOEX();
lpConsoleCurrentFontEx->cbSize = sizeof(CONSOLE_FONT_INFOEX);
GetCurrentConsoleFontEx(hStdOut, 0, lpConsoleCurrentFontEx);
lpConsoleCurrentFontEx->dwFontSize.X = a;
lpConsoleCurrentFontEx->dwFontSize.Y = b;
SetCurrentConsoleFontEx(hStdOut, 0, lpConsoleCurrentFontEx);
}
然后调用(例如):
setFontSize(20,20);