|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
[C++] utilizzo dell'header<fstream> per scrittura su file
Salve a tutti! Mi chiedevo: facendo un programma con le liste..come posso stampare su file il risultato della funzione "stampa lista" dopo che ho inserito tutti i dati??
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
crei una funzione che accetta come parametro uno stream che poi sia cout cerr clog ifstream ofstream o chi per loro te ne dovrebbe importare poco, inoltre visto che mi sa di esercizio scolastico mi rifiuto di fornirti esempi belli e pronti
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
Grazie mille! Solo che sto alle prime armi col C++ e ti garantisco che non è un esercizio scolastico XD !! Ho fatto un programma per catalogare i miei vinili..e mi sarebbe piaciuto stmparli su un file di testo!! Mi accontento anche di un link dove viene spiegato il file stream.. purtroppo sul libro dove studio è fatto male..e facendo da autodidatta non ho altre soluzioni! Grazie ancora
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
allora la cosa è molto semplice te hai presente l'oggetto cout? è la stessa identica cosa.
qui trovi quello che ti serve sapere http://www.cplusplus.com/reference/i...m/fstream.html
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
La funzione per stampare a video l'ho fatta cosi:
void stampa_lista(lista output) { lista p=output; while(p!=0) { cout<<endl<<p->artista<<'\n'<<p->album<<'\n'<<p->anno<<'\n'<<'\n'; p=p->succ; } } Non riesco a fare quella per stamparlo su file..ho provato cosi ma mi dà errore: void stampa_file(fstream flusso) { flusso << stampa_lista(lista output); } |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Non sarebbe meglio usare le STL???
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
Quote:
Codice:
void stampa_lista(fstream out, lista output){ lista p=output; while(p!=0) { out<<endl<<p->artista<<'\n'<<p->album<<'\n'<<p->anno<<'\n'<<'\n'; p=p->succ; } }
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza Ultima modifica di wizard1993 : 27-12-2008 alle 19:44. |
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
Giustoo!! Ho capito il ragionamento..l'unica cosa è che il compilatore mi da molti errori alla finzioni..non fa compilarlo!!
Ultima modifica di Spanaccio : 27-12-2008 alle 19:30. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
avevo sbagliato a scrivere, ora dovrebbe andare se non ho sbagliato di nuovo, vado di corsa quindi forse qualcosa mi è sfuggito
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#10 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
Grazie adesso è perfetto! Nel main ho scritto:
lista catalogo=0; fstream flusso; flusso.open("Vinile.txt" , ios::out); flusso<<stampa_file(flusso,catalogo); flusso.close(); ma mi da un errore con scritto:"// _GLIBCXX_RESOLVE_LIB_DEFECTS // 50. Copy constructor and assignment operator of ios_base private: ios_base(const ios_base&);" ..vedrò di risolvere! Grazie ancora |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
Quote:
Codice:
flusso<<stampa_file(flusso,catalogo); Codice:
stampa_file(&flusso,catalogo)
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
ti basta definire la funzione in questo modo:
Codice:
void stampa_file(fstream &flusso) { // corpo } |
![]() |
![]() |
![]() |
#13 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
Facendo come ha suggerito wizard il programma va ma crea un file di testo vuoto!!!
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
ma catalogo lo inizializzi mai con qualcosa di non vuoto?
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#15 |
Junior Member
Iscritto dal: Dec 2008
Messaggi: 13
|
Apposto!!Risolto..non l'avevo messo nello switch..
![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:24.