Ripristina il punto dello schermo nella parte superiore dello schermo nella console Windows e Linux

StackOverflow https://stackoverflow.com/questions/56324

  •  09-06-2019
  •  | 
  •  

Domanda

Ho una piccola routine che viene eseguita su Linux e Windows scritta in C e visualizza l'output sulla console.Non sto collegando in alcuna forma di maledizioni o qualcosa del genere.

Attualmente pulisco lo schermo utilizzando

#ifdef __WIN32
  system( "cls" );
#else
  system( "clear" );
#endif

Quindi ho un sacco di istruzioni printf per aggiornare lo stato.Quello che vorrei è semplicemente reimpostare il puntatore dello schermo su 0,0 in modo da poter semplicemente sovrapporre i miei printfs.Preferirei evitare di compilare altre estensioni, soprattutto perché sto codificando per 2 sistemi operativi diversi.

È stato utile?

Soluzione 2

Sembra che potrei aver trovato un modo specifico per Windows per farlo SetConsoleCursorPosition

Sequenza di escape Ansi \033[0;0H per Linux: basta stamparla sulla console.

Altri suggerimenti

Per le piattaforme simili a Unix, il modo consueto per farlo è utilizzare il file maledizioni biblioteca.

Sì, per le piattaforme Unix, curses (o ncurses, di questi tempi) è la strada da percorrere.E ci sono versioni che funzionano sotto Windows, quindi potresti farlo allo stesso modo su entrambi i sistemi.

Per Windows: puoi utilizzare i caratteri di escape ANSI.

http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm

http://www.robvanderwoude.com/ansi.html

printf "\x[0;0H"

In passato era necessario caricare Ansi.sys prima di poterlo fare, ma vale la pena provare.

Istruzioni per aggiungere il supporto ANSIhttp://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.htmlNota:che Ansi.sys funziona solo con command.com.Non puoi usarlo con cmd.exe

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