funzione otuput su file di testo C++
- dade-bian
- Scoppiettante Seguace

- Messaggi: 597
- Iscrizione: sabato 17 dicembre 2011, 12:08
- Desktop: Gnome Shell
- Distribuzione: Ubuntu/Debian
- Sesso: Maschile
- Località: Milano
funzione otuput su file di testo C++
sicuramente tutti conosceremo il vantaggio della schell di utilizzare ">" o ">>"
mi domandavo se potevo utilizzare qualcosa del genere con una funzione,
mandando "ls > lista.txt" ottengo la lista dei file e delle directory nella directory attuale.
mi domandavo se: "./code.cpp/function(int a, int b) > risultato.txt" era possibile farlo con una funzione durante l'esecuzione di un programma.
la funzione utilizza dei comunissimi cout, perchè questo deve fare, solo in un caso eccezionale mi servirebbe il risultato su un file.
senza dover scrivere la funzione con un parametro in piu che differenzia i due output o una funzione uguale tranne per la singola riga del output.
mi domandavo se potevo utilizzare qualcosa del genere con una funzione,
mandando "ls > lista.txt" ottengo la lista dei file e delle directory nella directory attuale.
mi domandavo se: "./code.cpp/function(int a, int b) > risultato.txt" era possibile farlo con una funzione durante l'esecuzione di un programma.
la funzione utilizza dei comunissimi cout, perchè questo deve fare, solo in un caso eccezionale mi servirebbe il risultato su un file.
senza dover scrivere la funzione con un parametro in piu che differenzia i due output o una funzione uguale tranne per la singola riga del output.
Buona Community a tutti !!
-
DavideDaSerra
- Scoppiettante Seguace

- Messaggi: 349
- Iscrizione: domenica 15 febbraio 2009, 15:26
- Desktop: xubuntu
- Distribuzione: Ubuntu12.10 x86_64
- Località: Da qualche parte in quel di Modena
Re: funzione otuput su file di testo C++
Dal cpp NO, devi aprire un file scriverlo e chiuderlo, se invece vuoi 'redirigere l'output' del programma cpp allora sì, ma devi usarlo sempre da shell.
es: il programma p1.out stampa 'hello world'
$> pi.out > fileout.txt
in fileout.txt avrai hello world
ma dal codice cpp non puoi fare
"ciao mondeo" >> /home/user/FordCars.txt
sperando che il compilatore interpreti tutto come:
cerca il file, aprilo, stampa e chiudilo
Nota: secondo me non hai ben chiara la differenza tra sorgente ed eseguibile, che in shell, in efetti è un flag settato, in cpp il codice, prima di essere eseguito, è compilato quindi tu da 'fuori' non puoi chiamare una funzione dichiarata nel codice cpp, se non così, o eventualmente, aggiungendo un parametro alla chiamata che ti dica quale funzione invocare.
ESEMPIO Chiamata corretta:
da shell
mostrerebbe
invece
mostrerebbe
chiamata errata:
in bash darebbe un errore e in cpp pure
es: il programma p1.out stampa 'hello world'
$> pi.out > fileout.txt
in fileout.txt avrai hello world
ma dal codice cpp non puoi fare
"ciao mondeo" >> /home/user/FordCars.txt
sperando che il compilatore interpreti tutto come:
cerca il file, aprilo, stampa e chiudilo
Nota: secondo me non hai ben chiara la differenza tra sorgente ed eseguibile, che in shell, in efetti è un flag settato, in cpp il codice, prima di essere eseguito, è compilato quindi tu da 'fuori' non puoi chiamare una funzione dichiarata nel codice cpp, se non così, o eventualmente, aggiungendo un parametro alla chiamata che ti dica quale funzione invocare.
ESEMPIO Chiamata corretta:
Codice: Seleziona tutto
char* funzione (char s1[], char s2){
//nell'esempio concatena le 2 stringhe
return strcat(s1,s2);
}
char* schiaffo (){
return "slap";
}
int main (int argc, char **argv){
//controlli che argv[1] valga funzione o schiaffo
if(strcmp(argv[1],"funzione"))funzione(argv[2],argv[3]); >>cout}
if(strcmp(argv[2],"schiaffo"))funzione(); >>cout}
Codice: Seleziona tutto
a.out funzione stringa1 stringa2 >> fout.txt
Codice: Seleziona tutto
cat fout.txtCodice: Seleziona tutto
stringa1stringa2Codice: Seleziona tutto
a.out schiaffo >> fout.txt
Codice: Seleziona tutto
cat fout.txtCodice: Seleziona tutto
slapchiamata errata:
Codice: Seleziona tutto
$> a.out.funzione("stringa1","stringa2");
- dade-bian
- Scoppiettante Seguace

- Messaggi: 597
- Iscrizione: sabato 17 dicembre 2011, 12:08
- Desktop: Gnome Shell
- Distribuzione: Ubuntu/Debian
- Sesso: Maschile
- Località: Milano
Re: funzione otuput su file di testo C++
momentaneamente, dato che mi mettono sempre alle strette con i tempi, preferisco fare un codice non ottimale, pure che lavora male ma che almeno fa quel che deve, ho riscritto la funzione da zero con un nome simile, ma che purtroppo fa la stessa cosa ...
qualche programmatore mi prenderà a parole nel caso rivedranno il codice, proprio per questo lascio la discussione aperta e non metto risolto.
per quanto riguarda "code.cpp funzione()..." ecc
era per rendere l'idea che il programma è in c++ ovvio non è eseguibile è un file codice.
qualche programmatore mi prenderà a parole nel caso rivedranno il codice, proprio per questo lascio la discussione aperta e non metto risolto.
per quanto riguarda "code.cpp funzione()..." ecc
era per rendere l'idea che il programma è in c++ ovvio non è eseguibile è un file codice.
Buona Community a tutti !!
-
DavideDaSerra
- Scoppiettante Seguace

- Messaggi: 349
- Iscrizione: domenica 15 febbraio 2009, 15:26
- Desktop: xubuntu
- Distribuzione: Ubuntu12.10 x86_64
- Località: Da qualche parte in quel di Modena
Re: funzione otuput su file di testo C++
Da come avevi scritto non si capiva
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti