ecco tutto il codice completo. quando lo eseguo funziona, scrive sul file, e non lascia nessuna riga vuota
invece quando inserisco '3' visualizza contatti, mi stampa a monitor una riga vuotacodice:# include <iostream> # include <windows.h> # include <string.h> # include <fstream> using namespace std; string nome, cogn, numero, mail; string linea; long pos; int i; void inizia(); void acquis_scritt(ofstream &write); void scrittura(); void leggi_stampa(); int conta_righe(); int main() { int scelta,rigaFile,colon,Nrighe; char ok; cout << "RUBRICA telefonica\n"<<endl; while (scelta!=5) { cout << "1) Inizia Rubrica " << endl; cout << "2) Aggiungi Contatti " << endl; cout << "3) Visualizza contatti " << endl; cout << "4) Elimina Rubrica " << endl; cout << "5) Esci" << endl; cin >> scelta; if (scelta==1) { ofstream write("Rubrica.txt",ios::out); write << "NOME"; write.seekp (20, ios_base::beg); write <<"COGNOME"; write.seekp (40, ios_base::beg); write <<"NUMERO"; write.seekp (52, ios_base::beg); write <<"E-MAIL"<<endl; acquis_scritt(write); write.close(); } if (scelta==2) { ofstream write("Rubrica.txt",ios::app); acquis_scritt(write); write.close(); } if (scelta==3) { leggi_stampa(); } if (scelta==4) { cout << "Sei sicuro di voler eliminare la rubrica? (s/n)" << endl; cin >> ok; if (ok=='s' || ok=='S') { ofstream remove("Rubrica.txt"); remove.close(); cout << "Rubrica Eliminata!! "<<endl; } } if (scelta!=3) system("CLS"); } cout << "Sei uscito dal programma." <<endl; system("PAUSE"); } //------------------------------------------------------------------------------ void acquis_scritt(ofstream &write) { cout << "Inserisci nome:"<<endl; cin >> nome; nome.resize(20); write << nome; cout << "Inserisci cognome:"<<endl; cin >> cogn; cogn.resize(20); write << cogn; cout << "Inserisci numero:"<<endl; cin >> numero; numero.resize(12); write << numero; cout << "Inserisci e-mail:"<<endl; cin >> mail; mail.resize(35); write << mail << endl; } //------------------------------------------------------------------------------ void leggi_stampa() { system("CLS"); int rig = conta_righe(); ifstream read("Rubrica.txt"); if(read) { for(i=1;i<=rig;i++) { read >> linea; cout << linea <<endl; } } read.close(); } //------------------------------------------------------------------------------ // CONTA RIGHE int conta_righe() { fstream file; string s; int contarighe=0; file.open("Rubrica.txt",ios::in); if(file) { while(!file.eof()) { getline(file,s,'\n'); contarighe++; } } return contarighe-1; }

Rispondi quotando