PDA

View Full Version : [C++] ofstream - righe


ClaudioP
27-03-2008, 12:11
Ciao;

supponiamo di aprire un file txt per output:

ofstream ciao2;
ciao2.open("pippo.txt",ios::out | ios::trunc);

inserisco dei dati

ciao2 << blablabla;

vado a capo

ciao2 << endl;

scrivo altre cose

ciao2 << lol lol trikketrakke;

Ora ho bisogno di scrivere di nuovo cose sulla prima riga(dopo blablabla).

Come faccio?

Grazie a tutti x l'aiuto

okay
27-03-2008, 12:24
Ciao;

supponiamo di aprire un file txt per output:

ofstream ciao2;
ciao2.open("pippo.txt",ios::out | ios::trunc);

inserisco dei dati

ciao2 << blablabla;

vado a capo

ciao2 << endl;

scrivo altre cose

ciao2 << lol lol trikketrakke;

Ora ho bisogno di scrivere di nuovo cose sulla prima riga(dopo blablabla).

Come faccio?

Grazie a tutti x l'aiuto

rileggi il file in input mettendo i dati in memoria, matrice ecc ecc

apri di nuovo in output e scrivi nel file testo alla prima riga quello che intendi scrivere e poi aggiungi i dati messi in memoria.

temp[1000]

leggi in input
temp[0] la prima riga
temp[1] la seconda riga

ora apri in output

scrivi i nuovi dati:

print ciao
print amico
print temp[0]
print temp[1]


oppure:

apri in input 1
apri in output 2

print 2 nuova riga
print 2 nuova riga

while
input 1 riga
print 2 riga
wend

close 1
close 2

...senza mettere i dati in memoria

kernel::panic
27-03-2008, 14:25
Chiama la funzione seekp che ti permette di impostare la posizione del puntatore di scrittura, poi con l'operatore << puoi scrivere in quel punto (okkio che perņ sovrascrive, non inserisce)

http://www.cppreference.com/cppio/seekp.html

Se devi inserire ti conviene fare come dice okay ;)