7

cを使用して印刷フォントのフォントサイズを変更するにはどうすればよいですか?

 printf ("%c", map[x][y]);

プログラム内の他のすべてのテキストよりも大きな配列を出力したいと考えています。そのステートメントを大きく印刷する方法はありますか?

4

4 に答える 4

5

teppic の useへの回答は機能します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が指摘しているように、フォント サイズの変更はサポートされていません。それはユーザーの管理下にあります。

于 2013-03-09T22:44:14.977 に答える
1

UNIXを使用している場合は、太字のテキストをアクティブ化および非アクティブ化してみてください。

printf("\033[1m%c\033[0m", map[x][y]);
于 2013-03-09T22:33:16.240 に答える
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 でテキストを赤に変更します。ただし、これらのシーケンスは異なる場合があります。

于 2013-03-09T22:21:49.630 に答える
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);
于 2019-06-03T20:35:24.237 に答える