Archivo.txt:
dato 1
dato 2
dato 3
Ahora quiero escribir después del dato 2, posiciono el cursor y justo después quiero agregar "dato x". Tendría que quedar algo como:
Archivo.txt:
dato 1
dato 2
dato x
dato 3
pero lo que me ocurre es que se sobreescribe lo que hay después de dato 2 así:
Archivo.txt:
dato 1
dato 2
dato x
Cómo hago para que no se sobreescriba? y que cada vez que quiera agregar algo después de dato 2 quede algo así:
Ejemplo agregando primero "dato x" y luego "dato y":
Archivo.txt:
dato 1
dato 2
dato y
dato x
dato 3
Código
void Telefono::crearTelefono(string clase,string inicio,string fin) { string comparar; cout<<"Numero: ";cin>>num; cout<<"Indicativo: ";cin>>indicativo; cout<<"Tipo: ";cin>>tipo; string datos=getDatosTelefono(); fstream archivo; if(clase == "agencias") { archivo.open("agencias.txt"); } else if(clase == "aerolineas") { archivo.open("aerolineas.txt"); } if(archivo.is_open()) { while(!archivo.eof()) { getline(archivo,comparar); if(comparar == inicio) // todo esto es para buscar el lugar donde quiero agregar texto { while(!archivo.eof()) { getline(archivo,comparar); if(comparar==fin) // todo esto es para buscar el lugar donde quiero agregar texto { archivo<<datos; //una vez encontrado el lugar, que me agregue texto ahí. archivo.close(); } } } } archivo.close(); } else { cout<<"Error al intentar abrir el fichero."; } } //---------------------------------------------------------- string Telefono::getDatosTelefono() { string r=tipo+": ("+indicativo+") "+num+"\n"; return r; }
Gracias de antemano!