Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Catturare l'output di un programma in c
Forum - C/C++ - Catturare l'output di un programma in c

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Vista la risposta tempestiva ad un altra mia domanda ne avrei qui subito un altra non si sa mai :) come faccio a cattuare l'output di un comando dos? tipo lanciare da un programma c il ping e cattuare il risultato? grazie anticipatamente Eidos 8-|

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 1:07
Domenica, 02/04/2006
ciao!
io ti consiglio il modo pi? semplice (secondo me), che consiste nel reindirizzare l'output del comando dos su un file, e in seguito leggerlo dal prg. ;)

il comando che permette di fare ci? ? ha questa sintassi:
Codice sorgente - presumibilmente Plain Text

  1. "dir /s > nomefile.txt"



un volta creato lo puoi gestire dal tuo prg ad esempio con qst banale listato:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. #define TXTFILE "nomefile.txt"
  4.  
  5. int main() {
  6. FILE *fp=fopen(TXTFILE,"r");
  7.    if(fp!=NULL) {
  8.      printf("Output Comando:\n");
  9.        while(!fp.eof())
  10.          printf("%c", getc(fp));
  11.    } else {
  12.         printf("\nErrore nel comando!");
  13.    }
  14.   return 0;
  15. }




spero che ti sia di aiuto!
ciauu :k:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:49
Domenica, 02/04/2006
Grazie ;) allora far? cos? :( anche perch? continuando a cercare non ho trovato molto (in c) in java ci sono metodi gia fatti per catturare l'output boh...

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 19:54
Giovedì, 06/04/2006
be ? la prima soluzione che mi ? venuta in mente leggendo il tuo post! :-|
spero che sia anche la + efficiente!!

ciaoo :k:

PM Quote
Avatar
Hack (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 09/05/2006

Segnala al moderatore
Postato alle 15:27
Giovedì, 11/05/2006
Scusa, ma è giusto questo pezzo di codice che tu hai scritto:
Codice sorgente - presumibilmente Plain Text

  1. while(!fp.eof())



Se si, a cosa serve?:D

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 17:44
Giovedì, 11/05/2006
Testo quotato

Postato originariamente da Hack:

Scusa, ma è giusto questo pezzo di codice che tu hai scritto:
Codice sorgente - presumibilmente Plain Text

  1. while(!fp.eof())



Se si, a cosa serve?:D



si scusa... errore mio di sintassi!
correggilo pure cosi:
Codice sorgente - presumibilmente Plain Text

  1. ...
  2. while(!eof(fp)) {
  3. ...
  4. }
  5. ...



:k:

PM Quote
Avatar
Hack (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 09/05/2006

Segnala al moderatore
Postato alle 18:13
Giovedì, 11/05/2006
Ma con il while gli fai stampare il contenuto del file?
Non stampa niente.:-|

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 20:31
Venerdì, 12/05/2006
Testo quotato

Postato originariamente da Hack:

Ma con il while gli fai stampare il contenuto del file?
Non stampa niente.:-|



il while permette di stampare il contenuto del file fino a che non si verifica l'EOF (end of file) e allora termina tutto ;)

provati qst se nn funziona l'altro...
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char** argv) {
  4. FILE *fp=fopen(argv[1],"r");
  5. char c;
  6.    
  7.     printf("contenuto file:\n");
  8.     c=getc(fp);
  9.     do {
  10.         printf("%c", c);
  11.         c=getc(fp);
  12.     } while(c!=EOF);    
  13.  
  14.   system("pause");
  15.   return 0;
  16. }


NB
stai attento che il file da leggere viene passato come argomento!

:k:

ps e cmq l'altro nn funziona xke nn avrai configurato il DEFINE correttamente!
devi sostituire al posto di "nomefile.txt" il nome del tuo file da leggere :rotfl:

Ultima modifica effettuata da Rand il 12/05/2006 alle 20:34
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6223
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:02
Sabato, 13/05/2006
Per essere pignoli, usare il ciclo:
Codice sorgente - presumibilmente Plain Text

  1. do{
  2.  
  3. }while(<condizione>);


Nella lettura dei files è scorretto, infatti se il file ha dimensioni 0 l'operazione di lettura viene comunque eseguita e va a leggere che cosa se il file è vuoto?

Sarebbe più opportuno quindi usare sempre il
Codice sorgente - presumibilmente Plain Text

  1. while(<condizione>){
  2.  
  3. }




:)


Il mio blog: https://piero.dev
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo