Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2012, 05:55
carloscgc
 
Fecha de Ingreso: diciembre-2012
Mensajes: 1
Antigüedad: 11 años, 5 meses
Puntos: 0
Modificar lista en archivo de texto

Hola! Tengo un problema, he hecho un programa para que lea de un archivo de texto, el archivo de texto tendra dentro lineas que seran usuario, salto de linea, y luego contraseña, y asi todo el rato.

El problema viene que ahora quiero que sea posible modificar la contraseña de un usuario en concreto, es decir que busque al usuario en la lista, y si esta en la posicion 3 pues que la siguiente linea que corresponderia con su contraseña se borraria y meteria yo lo que quisiera , me han dicho de usar tellg y seekp, pero

Código:
do{
       fstream archivo;
       archivo.open ("registro.txt", ios::out | ios::app);

	system("CLS");
	cout << "Bienvenido al menu del administrador" << endl;
	cout << "Que desea hacer?" << endl;
	cout << "1. Ver registros" << endl;
	cout << "2. Modificar contraseña" << endl;
	cout << "0. Salir" << endl;

        cin >> opcion;

	switch (opcion)
	{
	case '2':
	cout << "Por favor, introduce el apodo al que quieres cambiar la contraseña:"; 
	getline(cin,apodo);

	getline (archivo, usuario); // variables de fstream declaradas anteriormente
        getline (archivo, contrase?a);

	while ( !archivo.fail() )
	{

	   if(apodo == usuario)
		{
		encontrado = true;
		// aqui habria que poner algo para que recordara la posicion?
		}
		getline(archivo, usuario);
		getline(archivo, contrase?a);
		}//busqueda en la lista del apodo para comprobar que exista
					
		if (!encontrado)
	       {
			cout << "no existe ese apodo" << endl;
		}
		else
			{
			cout << "introduce nueva contraseña " << endl;
			getline( cin, nuevacontraseña);
						
// como se hara aqui para escribir la nueva contraseña? es donde tengo el problema
			}
			break;
		}			
		}while(!salir);
          archivo.close();
La parte de comprobar si existe archivo etc etc las he quitado para poner el codigo que me interesa