私は、ターミナルカラー(コマンドラインプログラム)を変更し、tccを使ってコンパイルするためにwindows.hを使用する単純な "カラーテキスト"プログラムを作成しようとしています。しかし、実際には通常は数字を渡すのではなく、与えられたテキスト(制御文字でも!)に応じてランダムな色を選択します。どのように私はそれを修正するだろうか?私は(すべての黒のテキストに私を持参してください)例タイプ0のために、私は代わりに、これを取得する場合Colortextプログラムが正しく色付けされていない
#include <stdio.h>
#include <windows.h>
int main(int argc, char *argv[]) {
if (argc >= 3) {
printf("Too many arguments specified.");
return 1;
}
if (argc == 1) {
printf("No arguments specified. Please specify one.");
return 1;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), *argv[1]);
return 0;
}
ので、:
EDITを:strlen(argv[1]);
から*argv[1]
が働い変えるように見えます。しかし、今は指定された入力の長さによって異なります。それは、背景と前景を正しく設定します(長さ0はエラーを返し、長さ1は1に、長さは何にでも設定します)。 "anti strlen" 、数字の多い文字列を作成して返します)は動作しません。
編集:atoi()を使用します。ただ、注意を払う
#include<stdio.h>
#include<conio.h>
int main(int argc, char** argv)
{
textcolor(RED);
cprintf("some stuff");
getch();
return 0;
}
、conio.h
はどの非スタンダールライブラリです:あなたは、Windows上にある場合は、conio.h
を使用して、それをこのように使用することができ
#include <windows.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), atoi(argv[1]));
return 0;
};
conio.hはWindows用のtccでは動作しません(REDが何であるか、BLINK、またはtextcolor ...でもわかりません) – 180Five
動作しない場合、 'curses 'で試してみてください。あなたの問題を解決することができる別のライブラリです。 –