si, l'ho fatto, pero' non ho usato streamoff che usi tu e funziona lo stesso.
Senti io ho creato una procedura di acquisizione:
questa procedura la richiamo ogni volta che mi serve, pera' adess compilandola mi da' errore (che dice che non ho dichiarato write)codice:# include <iostream> # include <windows.h> # include <string.h> # include <fstream> using namespace std; string nome, cogn, numero, mail; void inizia(); void acquisizione(); void scrittura(); int main() { int scelta; long pos; 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 tutta la Rubrica "<<endl; cout << "5) Esci"<<endl; cin >> scelta; if (scelta==1) { ofstream write("Prova.txt",ios::out); write << "NOME"; write.seekp (20, ios_base::beg); write <<"COGNOME"; write.seekp (40, ios_base::beg); write <<"NUMERO"; write.seekp (54, ios_base::beg); write <<"E-MAIL"<<endl; acquisizione(); write.close(); } if (scelta==2) { ofstream write("Prova.txt",ios::app); } if (scelta==3) { } } system("PAUSE"); } //------------------------------------------------------------------------------ void acquisizione() { cout << "Inserisci nome:"<<endl; cin >> nome; write.seekp (0, ios_base::cur); write << nome; cout << "Inserisci cognome:"<<endl; cin >> cogn; pos=nome.length(); write.seekp (20-pos, ios_base::cur); write << cogn; cout << "Inserisci numero:"<<endl; cin >> numero; pos=cogn.length(); write.seekp (20-pos, ios_base::cur); write << numero; cout << "Inserisci e-mail:"<<endl; cin >> mail; pos=numero.length(); write.seekp (14-pos, ios_base::cur); write << mail << endl; } //------------------------------------------------------------------------------ void scrittura() { }

Rispondi quotando