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

È stato utile?

Soluzione

La funzione finestra

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top