Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Input da stdout
Forum - C/C++ - Input da stdout

Avatar
Dante.cpp (Normal User)
Pro


Messaggi: 65
Iscritto: 23/11/2011

Segnala al moderatore
Postato alle 15:37
Mercoledì, 22/02/2012
Sono curioso di sapere, s'è possibile leggere un carattere dallo standard out, ho scritto questo piccolo frammento; in compilazione tutto ok, poi durante l'esecuzione, m'appare un errore di segmentazione. Il che, mi fa pensare che non sia possibile leggere dallo stdout, poiché noi ne abbiamo i permessi di sola scrittura.

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define gotoxy(x,y) printf("%c[%d;%df",0x1B,y,x)
  5.  
  6. int main(){
  7.  
  8.         char car;
  9.  
  10.         gotoxy(5,5);    /*sposta carrello in (x,y)*/
  11.         printf("@");
  12.  
  13.         gotoxy(5,5);
  14.         scanf("%c", car);
  15.  
  16.         printf("caratere= %c", car);
  17.  
  18.         return 0;
  19.  
  20. }



Mi chiedo se vi sia qualche stratagemma per leggere dallo stdout. Se la periferica monitor con tutto il suo apparato di interfacciamento è come la immagino; ossia dotata di un buffer di registri contenenti il dato da visualizzare, quest'operazione potrebbe esser fattibile, magari a basso livello, e con i privilegi di root.



PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 18:06
Mercoledì, 22/02/2012
Ciao, l'errore di segmentazione e' che hai dimenticato & nello scanf.Pero' non ho ben capito cosa vuoi fare.

Ultima modifica effettuata da dmr il 22/02/2012 alle 18:07
PM Quote
Avatar
Dante.cpp (Normal User)
Pro


Messaggi: 65
Iscritto: 23/11/2011

Segnala al moderatore
Postato alle 19:06
Mercoledì, 22/02/2012

hai ragione, tuttavia v'è un errore logico, ecco l'out:

Testo quotato

@
caratere=


PM Quote