zamers (Normal User)
Newbie
Messaggi: 2
Iscritto: 23/09/2009
|
ciao a tutti sono nuovo.. alla fine dopo tanti aiuti che ho avuto leggendo il vostro forum mi sono dovuto iscrivere per chiedere un aiuto su una cosa che, magari per voi è semplice, ma io è da due giorni che nn riesco a venirci a capo ed è per questo che alla fine ho dovuto iscrivermi qua.. l'ultima speranza!!
allora, il programma è un esercizio e tratta una lista di prenotazioni di voli.
il mio programmino crea il file prenotazioni.txt e lo crea con i seguenti dati:
prenotazioni.txt:
========================
Numero Prenotazione: 1
Data della prenotazione: 23 - 9 - 2009
Località di partenza: MILANO
Aeroporto di partenza: MXP - MILANO MALPENSA TERMINAL 1
Data e ora della partenza: 24 - 9 - 2009 alle ore 14.35
Localita' di arrivo: OLBIA
Aeroporto di arrivo: OLB - OLBIA COSTA SMERALDA
Data e ora di arrivo: 24 - 9 - 2009 alle ore 15.35
Prezzo: 87.43 Euro
========================
* PRENOTAZIONE CONFERMATA *
========================
Numero Prenotazione: 2
Data della prenotazione: 25 - 9 - 2009
Località di partenza: ROMA
Aeroporto di partenza: ROM - ROMA FIUMICINO
Data e ora della partenza: 26 - 9 - 2009 alle ore 15.32
Localita' di arrivo: BARI
Aeroporto di arrivo: BAR - BARI SAN NICOLA
Data e ora di arrivo: 26 - 9 - 2009 alle ore 16.15
Prezzo: 67.25 Euro
========================
* PRENOTAZIONE CONFERMATA *
.ecc...ecc..
ora, ho creato una funzione che possa far leggere tutto il file (con le righe tutte precise come nel file txt e nn tutto attaccato o senza spazi.. in pratica la stessa cosa e formattata uguale di come è nel file txt) ed è questa:
Codice sorgente - presumibilmente C/C++ |
void voli()
{
system("cls");
cout << "Lista dei voli prenotati Alitalia\n\n";
ifstream stream1("prenotazioni.txt");
char data_array[100000]; //I DATI
if(!stream1) //se nn lo trova
{
cerr << "Errore nell'apertura del file delle prenotazioni.\n\n" << endl;
exit(8);
}
stream1 >> data_array;
cout << "il contenute del file e' \n" << data_array << "\n";
cout << "Le prenotazioni sono state visualizzate con successo.\n\n" << endl;
stream1.close();
}
|
e invece perché mi scrivo solamente la prima riga del file e poi basta???
cioè mi stampa solo questo pezzo del file txt:
========================
perché????
è da 1 giorno che mi sto sbattendo ma ancora nn sono riuscito
ho provato anche in questo modo di c:
Codice sorgente - presumibilmente C/C++ |
FILE* stream;
char buf[30];
stream=fopen("prenotazioni.txt","r");
while( fscanf(stream,"%s",buf) != EOF )
fprintf(stdout,"%s",buf);
fclose(stream);
|
ma mi stampa tutto il file ma tutto attaccato cioè senza rispettare gli spazi!!
vi prego datemi un aiuto se no nn riuscirò mai a risolvere sto esercizio vi posso ringraziare se mi dite un modo |
|
John (Ex-Member)
Pro
Messaggi: 191
Iscritto: 18/11/2007
|
il tuo codice va benissimo, basta che fai ripetere la parte di lettura e scrittura
finchè non arrivi ad EOF() con un ciclo while!!
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Dai un'occhiata a questo
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { system("cls"); cout << "Lista dei voli prenotati Alitalia\n\n"; ifstream stream1("prenotazioni.txt"); char data_array[1000][200]; if(!stream1) //se nn lo trova { cerr << "Errore nell'apertura del file delle prenotazioni.\n\n" << endl; exit(8); } int i=0; while(!stream1.eof()) stream1.getline(data_array[i++], 1000); cout << "il contenute del file e'" << endl; for(int j=0; j<i; j++) cout << data_array[j] << endl; cout << "Le prenotazioni sono state visualizzate con successo.\n\n" << endl; stream1.close(); return 0; }
|
Ultima modifica effettuata da theprogrammer il 23/09/2009 alle 18:55 |
|
zamers (Normal User)
Newbie
Messaggi: 2
Iscritto: 23/09/2009
|
grazie mille!!!!!!
funziona alla perfezione ed è esattamente ciò che stavo cercando di fare!!!
grazie ancora !!
|
|