Autor
|
Tema: LLenar arreglo con un archivo txt (Leído 14,430 veces)
|
Angel774
Desconectado
Mensajes: 12
|
Muchas gracias amigo, si es asi pero al cerrar el ejecutable el archivo aparece con caracteres extraños
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
¿Como estas guardado los datos? Tu funcion: void agenda::guardar_contacto() { FILE *arch; arch =fopen("agenda.txt","r"); }
No hace nada solo abre y cierra el archivo. Saluds
|
|
|
En línea
|
|
|
|
Angel774
Desconectado
Mensajes: 12
|
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);
}
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Ese "cont" no esta iniciaizado aun, esa sección de memoria tiene pura basura.... NEcesitas solo guardar los contactos del 0 al cont-1 de hecho en tu instrucccion solo guardas 1 contacto no inicializado.. Cambia tu codigo por: void agenda::guardar_contacto() { FILE *arch; int i = 0; arch =fopen("agenda.txt","w"); while(i < cont) { fprintf(arch ,"%s",lista [i ]. nombre); fprintf(arch ,"%s",lista [i ]. direccion); fprintf(arch ,"%i",lista [i ]. numero); i++; } }
Saludos!!
|
|
|
En línea
|
|
|
|
Angel774
Desconectado
Mensajes: 12
|
Muchas gracias bro!! ¿Como seria la de eliminar contacto?
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Jajajaja
COn tu sistema actual de datos la lista de 60 contactos es algo tedioso.
Primero tienes que localizar el contacto a eliminar ya sea por nombre o numero...
Eso es un sistema de busqueda.
Ahora una vez localizado y situandode en el registro X.... tienes que ve ver si hay mas elementos adelante de la lista. si es el ultimo no hay problema solo borras los datos y el contador lo decrementas en 1, pero si hay mas elementos tines que recorrelos de uno en uno o solo intercambiándolo con el ultimo pero pues es cosa de que decidas como hacerlo.
Es mas facil con apuntadores pero si no los has manejado la cosa se complica un poco.
Mi estimado ya me dormir espero y puedas terminar tu programa a tiempo y también que lo puedas hacer solo.
Un saludo!
|
|
|
En línea
|
|
|
|
Angel774
Desconectado
Mensajes: 12
|
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";
}
}
}
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
estas buscando cont veces en el mismo elemento lista[cont] cuando deberia de ser lista , ademas no estas incrementando el valor de i en cada busqueda
int agenda::buscar_contacto() { char aux[30]; int i=0,encontrado = -1; contacto x; cout<<"Introduce el contacto a buscar:"; cin>>aux; cout<<"cont vale:"<<cont; while(encontrado ==-1 &&i<cont) { if(strcmp(aux ,lista [i ]. nombre)==0) { cout<<"Contacto encontrado"; encontrado = i; } i++; } return encontrado; // Retornamos el valor de la posicion en el arreglo donde esta nuestro valor buscado }
Saludos!
|
|
|
En línea
|
|
|
|
Angel774
Desconectado
Mensajes: 12
|
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;
}
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda a llenar una pila automaticamente ya tengo el vaciado solo me falta llenar
Java
|
smallville121
|
0
|
3,190
|
21 Mayo 2012, 16:40 pm
por smallville121
|
|
|
[C] Llenar arreglo con recursividad
Programación C/C++
|
edr89
|
2
|
11,604
|
6 Noviembre 2013, 04:15 am
por edr89
|
|
|
[C] Llenar archivo Binario, y borrar datos mayores al promedio
Programación C/C++
|
ramaa000
|
3
|
4,671
|
5 Marzo 2015, 02:57 am
por rir3760
|
|
|
Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h")
« 1 2 »
Programación C/C++
|
MartNahuel95
|
19
|
11,394
|
10 Junio 2016, 05:47 am
por AlbertoBSD
|
|
|
Como llenar un arreglo a partir de un json
PHP
|
d91
|
1
|
3,224
|
10 Febrero 2017, 20:48 pm
por mchojrin
|
|