PDA

View Full Version : Problema conio.h


andrea88
15-02-2004, 14:04
Ho un problema con questo file di ninclusione, e precisamente con la funzione void textcolor(int color); pur compilando senza errori, passando il numero corrispondente al colore alla funzione il colore delle lettere stampate a schermo non cambia, qualcuno id voi sa perchè?

Grazie in anticipo per l'aiuto.

maxithron
16-02-2004, 10:06
Che compilatore stai usando?

Ed inoltre, se quando compili non ricevi errori in merito alla direttiva d'inclusione, forse il problema non risiede li ma nel codice stesso della funzione che hai scritto. Magari potresti postarcela :)

andrea88
16-02-2004, 14:12
Utilizzo Dev C++ V. 4.9.8.0 . Il programma che ho scritto non fa altro che invocare void textcolor() prima di printf() e passargli come argomento un valore numerico. Il problema è che pur variando il valore il colore del testo non cambia.

andrea88
25-02-2004, 18:58
Up:(

fpucci
26-02-2004, 09:58
Potresti postarci un frammento di codice dove utilizzi la funzione?
Non credo che il problema sia nel file .h ma potrebbe dipendere più da come essa è stata invocata.

andrea88
26-02-2004, 16:37
il codice è il seguente:

#include <stdio.h>
#include >conio.h>

int main()
{
textcolor(3);
printf("Hello, world");
getch();
}

Il codice e estremamente semplice in quanto voleva solo essere una prova per vedere a quale cifra corrispondeva un dato colore ma, pur cambiando il valore dell' argomento passato alla funzione il colore non varia.

fpucci
26-02-2004, 20:16
Confesso che non uso la textcolor() dai tempi in cui le applicazioni giravano ancora sotto DOS...

Mi vengono in mente due cose:
1) Non è che bisogna caricare il driver ANSI.SYS (se lì'applicazione gira in DOS)?
2) Non ricordo se prima di utilizzare queste funzioni ea necessario chiamarne una prima che inizializzasse l'interfaccia grafica...

Forse non ti sarò stato molto d'aiuto, ma è molto che non utilizzo queste call...

cionci
26-02-2004, 21:10
textcolor e getch non sono funzioni del C standard...

andrea88
27-02-2004, 16:31
Daccordo, resta il fatto che pur senza che vi siano errori di compilazione il programma non funziona.

cionci
27-02-2004, 16:45
Probabilmente perchè non hai caricato l'ansi.sys...
E resta il fatto che non andrebbero usate ;)

andrea88
27-02-2004, 18:29
Come posso rimediare al problema (del mancato funzionamento, non dell' uso delle funzioni, per quelle basta evitare di us arle:D )?

cionci
27-02-2004, 18:38
Il funzionamento di queste funzioni (come anche clrscr e altre) è garantito solo nei compilatori Borland... Gli altri non sono tenuti a svilupparle... Magari è supportata solo come nome (per far compilare i programmi scritti per i compilatori Borland), ma non svolge quello che fa nei compilatori Borland...

Addirittura è la stessa conio.h che non esiste nello standard... Se vai sotto Linux non la trovi...

fpucci
27-02-2004, 21:42
Originariamente inviato da andrea88
Come posso rimediare al problema (del mancato funzionamento, non dell' uso delle funzioni, per quelle basta evitare di us arle:D )?

Hai provato a caricare sto benedetto driver ansi.sys nel config.sys?

alderighi
29-02-2004, 10:02
no è perchè invece di usare printf("Hello world"); devi usare cprintf("Hello world");
prova e vedrai funziona.

cionci
29-02-2004, 10:06
Anche la cprintf non è standard... Io non vedo perchè stravogere e sdenaturare lo standard :(
Programmando così vi troverete male...ve lo dico perchè ci sono passato anche io !!!

andrea88
29-02-2004, 12:55
Hai più che ragione, ma allora che funzione alternativa posso utilizzare al posto di textcolor?

cionci
29-02-2004, 15:46
Non la usi ;) Non mi sembra determinante...

andrea88
29-02-2004, 17:35
Volendo no...

Cmq grazie a tuti, ciao.

alderighi
01-03-2004, 07:58
è chiaro che quando uno passa da compilatore a compilatore debba rimpararsi una istruzione, e ti do anche ragione sui mille bug del borland però non mi sembra un dramma usare due funzioni proprietarie per cambiare il colore al testo

cionci
01-03-2004, 13:51
Originariamente inviato da alderighi
è chiaro che quando uno passa da compilatore a compilatore debba rimpararsi una istruzione
Il fatto è questo...quando uno parla da compialtore a compialtore non dovrebbe reimpararsi le istruzioni ;)

alderighi
01-03-2004, 16:26
si però è una cosa quasi impossibile specialmente per qunato riguarda le librerie grafiche sotto dos

cionci
01-03-2004, 19:22
Originariamente inviato da alderighi
si però è una cosa quasi impossibile specialmente per qunato riguarda le librerie grafiche sotto dos
Infatti...ma perchè usare il DOS ? Ci sono decine di librerie + o meno portabili per creare grafici ed interfacce grafiche...

andrea88
01-03-2004, 19:28
Io sarei abbastanza curioso di provarne qualcuna, mi sarebbe piaciuto realizzare effetti grafici sul testo e semplici interfacce (stile interfaccia del bios), mi sai consigliare qualche libreria che crei effetti simili.

alderighi
02-03-2004, 15:21
interessa anche a me
posta qualche link

cionci
02-03-2004, 19:50
Sinceramente non le so...ma io parlavo di GUI Windows...

andrea88
02-03-2004, 20:13
Non sono interessato a quel tipo di grafica, am a quella più simile alla CLI, se hai qualche info o link sono ben accetti.