come tornare in qualche posizione già stampata in C?
Domanda
lasciaci avere una situazione in cui il seguente programma stampa circa 10 righe di #
for(i=0;i<10;i++)
prinf("\n#");
ora come tornare alla 5a riga e modificare quel # e cambiarne il colore senza cancellare lo schermo o cancellare le 5 righe seguenti?
Ho provato
window(5,0,20,20);
textcolor(GREEN);
cprintf("#");
ma non sta modificando quello ma sta stampando sul lato di quello originale. perché?
c'è un altro modo di farlo e cambiare dinamicamente il colore del testo già stampato? per favore aiutami..il mio ambiente è turbo c su windows
Soluzione
generalmente crea una finestra dal 1 ° pixel delle due coordinate cioè nel tuo esempio (5,0) al pixel puntato dalle 2 coordinate successive. quindi il tuo programma dovrebbe funzionare
provalo oppure usa gotoxy ()
Altri suggerimenti
Sembra che tu stia mescolando printf e un'altra libreria di output - questo non è raccomandato. Printf prevede di essere inviato a un terminale di caratteri, mentre la libreria di output in questione potrebbe presumere erroneamente che abbia accesso esclusivo (e potrebbe comportarsi in modo errato.)
Basato su una funzione, probabilmente stai usando conio.h. La documentazione è disponibile qui , con un sommario che mostra ciascuno funzione disponibile. Da quell'indice, dovresti essere in grado di individuare immediatamente la funzione.
La funzione finestra non fa quello che vuoi, dato che imposta solo l'area in cui il cursore può cambiare il testo - non sposta il cursore, devi usare le altre funzioni della libreria.
-1:
Alcuni suggerimenti per pubblicare domande sui compiti:
1) Rispondi correttamente alla domanda! Il codice pubblicato non funziona come indicato nella descrizione:
for(i=0;i<10;i++)
prinf("#");
In questo modo verranno stampati 10 caratteri #
su una riga, poiché non è presente alcun carattere di fine riga. La descrizione originale parla di "stampare 10 righe."
2) Fornisci i dettagli necessari: quale ambiente stai usando: Windows? Linux? Quale compilatore? È un ambiente con finestre o basato su testo?
3) STFW prima della pubblicazione. Cerca " ANSI Escape Sequences " oppure " posizionando il cursore. "
forse-
cprintf("\b#");
'b' è per backspace