/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Farve String!
Fra : Truti


Dato : 26-04-02 17:11

Hvad skal jeg gøre for at på en simpel printf til at lave et farve out put:

printf("Dette Skulle Gerne Være Grønt");

Jeg har fundet ud af at man kan bruge ASCII farve men det lader sig ikke
rigtig gøre!

Nogle der har en mulighed på dette problem ?

Truti



 
 
Leo Laursen (26-04-2002)
Kommentar
Fra : Leo Laursen


Dato : 26-04-02 17:48

Fri, 26 Apr 2002 18:11:16 +0200, skrev Truti <maac@mail1.stofanet.dk>:
> Hvad skal jeg gøre for at på en simpel printf til at lave et farve out put:

> printf("Dette Skulle Gerne Være Grønt");

> Jeg har fundet ud af at man kan bruge ASCII farve men det lader sig ikke
> rigtig gøre!

> Nogle der har en mulighed på dette problem ?

Mon ikke det afhænger hvilken terminal type du laver output til ?

På linux kan du bruge ANSI escape sekvenser på de fleste terminaler.

F.eks: printf("\033[1;32mDette Skulle Gerne Være Grønt\033[0m");

"\033[1;32" giver lys(1) grøn(32).

Leo
--
<Knghtbrd> glDisable (GL_BUGS);
<Endy> heh
<Endy> Is that in 1.2? :)

Kent Friis (26-04-2002)
Kommentar
Fra : Kent Friis


Dato : 26-04-02 18:23

Den Fri, 26 Apr 2002 16:47:43 +0000 (UTC) skrev Leo Laursen:
>Fri, 26 Apr 2002 18:11:16 +0200, skrev Truti <maac@mail1.stofanet.dk>:
>> Hvad skal jeg gøre for at på en simpel printf til at lave et farve out put:
>
>> printf("Dette Skulle Gerne Være Grønt");
>
>> Jeg har fundet ud af at man kan bruge ASCII farve men det lader sig ikke
>> rigtig gøre!
>
>> Nogle der har en mulighed på dette problem ?
>
>Mon ikke det afhænger hvilken terminal type du laver output til ?
>
>På linux kan du bruge ANSI escape sekvenser på de fleste terminaler.

De fleste terminaler? Konsollen og diverse Xterms kan, men drudover?

>F.eks: printf("\033[1;32mDette Skulle Gerne Være Grønt\033[0m");

Det gav:

m
;32mDette Skulle Gerne Vfre Grxnt


~10 linier nede, og med cursoren stående på samme linie som teksten,
på min HP 700/41 terminal.

Mvh
Kent
--
Motion: andet ord for "ondt i fødderne".

Leo Laursen (26-04-2002)
Kommentar
Fra : Leo Laursen


Dato : 26-04-02 20:45

Fri, 26 Apr 2002 17:22:42 +0000 (UTC), skrev Kent Friis
<leeloo@phreaker.net>:
>>> Hvad skal jeg gøre for at på en simpel printf til at lave et farve out put:
>>> printf("Dette Skulle Gerne Være Grønt");
>>> Nogle der har en mulighed på dette problem ?

>>Mon ikke det afhænger hvilken terminal type du laver output til ?
>>På linux kan du bruge ANSI escape sekvenser på de fleste terminaler.

> De fleste terminaler? Konsollen og diverse Xterms kan, men drudover?

Forkert orvalg fra min side; jeg mente "de fleste" i betydningen de mest
almindeligt forekommende, hvilket er de samme som du nævner.

>>F.eks: printf("\033[1;32mDette Skulle Gerne Være Grønt\033[0m");

> Det gav:

> m
> ;32mDette Skulle Gerne Vfre Grxnt


> ~10 linier nede, og med cursoren stående på samme linie som teksten,
> på min HP 700/41 terminal.

Interessant.
Det understreger vigtigheden af at præcisere sine spørgsmål.

Der blev jo bedt om eksempler, uden nogen yderligere oplysninger.

Leo
--
What we see depends on mainly what we look for.
      -- John Lubbock

Byrial Jensen (27-04-2002)
Kommentar
Fra : Byrial Jensen


Dato : 27-04-02 16:02

Truti <maac@mail1.stofanet.dk> skrev:
> Hvad skal jeg gøre for at på en simpel printf til at lave et farve out put:
>
> printf("Dette Skulle Gerne Være Grønt");
>
> Jeg har fundet ud af at man kan bruge ASCII farve men det lader sig ikke
> rigtig gøre!
>
> Nogle der har en mulighed på dette problem ?

Det kan ikke gøres portabelt, men det der kommer tættest på, er nok
at bruge et standard termninalhåndteringsbibliotek som curses som fås
til mange systemer og kan styre mange typer terminaler.

#include <curses.h>
int main()
{
initscr(); /* Initialiser curses */
start_color(); /* Initialiser farver */
init_pair(1, COLOR_GREEN, COLOR_BLACK); /* Initialiser farvepar 1 */
attrset(COLOR_PAIR(1)); /* Brug farvepar 1 */
printw("Dette Skulle Gerne Være Grønt"); /* Skriv tekst */
refresh(); /* Opdater terminal */
endwin(); /* Nedluk curses og retabler terminalindstillinger */
return 0;
}

Bemærk at ovenstående kun er en skitse som ikke tjekker for
eventuelle fejl, men bare smider de forskellige funktioners
returværdier væk.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste