ecco tutto il codice completo. quando lo eseguo funziona, scrive sul file, e non lascia nessuna riga vuota
codice:
# 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;
}
invece quando inserisco '3' visualizza contatti, mi stampa a monitor una riga vuota