Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Angel774

#1
Muchas gracias bro, ya quedo todo mi programa pero tengo un problema con la funcion de eliminar


void agenda::eliminar_contacto()
{
  char aux[30];
  int i=0;
  bool error=false;
  cout<<"Introduce el contacto a eliminar:";
  cin>>aux;

while(i<cont)
{
      if(strcmp(aux,lista[i].nombre)==0)
      {
          error=true;
          cout<<"Contacto eliminado"<<endl;
           lista[i].mostrardatos();
           
           lista[i]=lista[i-1];
           cont--;
      }
    i++;
}
   if(!error)
     cout<<"No encontrado"<<endl;
    else
     mostrar_contacto();
  cout<<endl;

}

#2
jej si sigues ahi, porque no me busca  :-\


void agenda::buscar_contacto()
{
    char aux[30];
    int i=0;
    contacto x;
  cout<<"Introduce el contacto a buscar:";
  cin>>aux;
  cout<<"cont vale:"<<cont;

  while(i<cont)
  {
      if(strcmp(aux,lista[cont].nombre)==0)
      {
          cout<<"Contacto encontrado";

      }

  }

}


#3
Muchas gracias bro!! ¿Como seria la de eliminar contacto?
#4
Ya la modifique ahora esta asi

void agenda::guardar_contacto()
{
    FILE *arch;

    arch=fopen("agenda.txt","w");
    fprintf(arch,"%s",lista[cont].nombre);
    fprintf(arch,"%s",lista[cont].direccion);
    fprintf(arch,"%i",lista[cont].numero);
    fclose(arch);

}
#5
Muchas gracias amigo, si es asi pero al cerrar el ejecutable el archivo aparece con caracteres extraños
#6
Muchas gracias amigo  :D  si era asi, otra duda ¿Como añado un nuevo contacto al arreglo lista?
#7
Es que de hecho tengo que leer linea por linea ya que no tengo que modificar el archivo directamente, mas bien tengo que pasar toda la informacion del archivo a un arreglo una vez ahi, trabajo sobre el arreglo y no en el archivo


agenda::agenda()
{
    FILE *arch;
    cont=0;
    arch=fopen("agenda.txt","r");
  while(!feof(arch))
  {

       fscanf(arch,"%[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ]",&(lista[cont]));
       fgetc(arch);
       cont++;


  }
     fclose(arch);
}


#8
Gracias amigo, pero tu estas ocupando fwrite() y yo tengo que ocupar fscanf() para cargar la información en el arreglo y trabajar en el arreglo
#9
Ya vi los vídeos, y te lo agradezco en si mi duda es como cargar el archivo en el arreglo lista para después trabajar con el
#10
Hola!! Lo que pasa es que tengo que hacer un agenda en c++ que lea un archivo de texto y lo cargue en un arreglo de tipo contacto, una vez que se cargo tengo que trabajar en el arreglo con las operaciones de: agregar contacto, buscar, eliminar, mostrar todo, y modificar una vez hecho esto sobrescribir el txt con la nueva información

Este es el codigo que llevo


#include <iostream>
#include <stdio.h>
#include <string.h>


using namespace std;

struct contacto
{
    char nombre[30];
    char direccion[30];
    int numero;


    void pedirdatos();
    void mostrardatos();
};

class agenda
{
private:
    contacto lista[60];
    int cont;
public:
    agenda();
    void agregar_contacto();
    void buscar_contacto();
    void eliminar_contacto();
    void modificar_contacto();
    void mostrar_contacto();
    void guardar_contacto();
};

agenda::agenda()
{
    FILE *arch;
    cont=0;
    arch=fopen("agenda.txt","r");
  while(!feof(arch))
  {
       fscanf(arch,"%[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ]",lista);
        fgetc(arch);
        cont++;
  }
     cout<<"contador vale:"<<cont;
     fclose(arch);
}

void contacto::mostrardatos()
{
    cout<<"Nombre:";
    cout<<nombre<<endl;
    cout<<"Direccion:";
    cout<<direccion<<endl;
    cout<<"Numero:";
    cout<<numero;
    cout<<endl;
}

void contacto::pedirdatos()
{

    cout<<"Introduce nombre:";
    cin>>nombre;
    cout<<"Direccion:";
    cin>>direccion;
    cout<<"Telefono:";
    cin>>numero;
}
void agenda::mostrar_contacto()
{

    for(int i=0;i<cont;i++)
    {
    lista[i].mostrardatos();
    }


}


void agenda::guardar_contacto()
{
    FILE *arch;

    arch=fopen("agenda.txt","r");

    fclose(arch);

}


int main()
{
    agenda x;
   x.mostrar_contacto();
   
    return 0;
}