Autor
|
Tema: Pequeño inconveniente archivos/registros (Leído 2,005 veces)
|
reeyesg
Desconectado
Mensajes: 25
|
Buenaas mis mas cordiales saludos, tngo un pequeño inconveniente con archivos y registros, ya que le doy la opcion agregar y pongo un codigo que es el q deberia mostrar en el archivo .txt, pero solo me arroja otro numero y mientras que mas voy agregando, sale el mismo numero .. aqui les dejo el codigo para ver si me podrian ayudar.. Gracias de antemano Ejemplo; selecciono agregar equipo, me sale insertar codigo pongo "1", marca hp, caracteristicas negras.. y cuando reviso el .txt no me sale 1 si no que me sale otra serie de numeros.. y mientras añado otro se agrega cn el mismo codigo anterior mencionado.. ese es mi problema! #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h>
struct datos_equipo { long codigoe; char marca[20]; char caract[50]; }equipo;
struct datos_mtto { long codigom; char motivo[50]; char tipo[50]; char area[10]; }mtto; void main(){ int opc; long codigo_e; long codigo_m;
{ clrscr();//Borrando pantalla textcolor(WHITE);//Cambiando el color del texto gotoxy(15,8), cprintf("Menu de opciones"); gotoxy(10,10), cprintf("1. Agregar Equipos"); gotoxy(10,12), cprintf("2. Buscar Equipos "); gotoxy(10,14), cprintf("3. Agregar Mantenimiento"); gotoxy(10,16), cprintf("5. Salir del Menu"); textcolor(GREEN); gotoxy(10,20), cprintf("Que desea hacer?"); gotoxy(28,20), scanf("%i",&opc); textcolor(YELLOW); gotoxy(28,20); switch (opc) {
case 1: FILE * eq; eq=fopen("equipos.txt","a"); codigo_e= equipo.codigoe; printf("\n\t"); printf("ingrese codigo de equipo:\n\t"); scanf("%u",&equipo.codigoe);
printf("ingrese marca:\n\t"); scanf("%s",equipo.marca);
printf("ingrese Caracteristicas:\n\t"); scanf("%s",equipo.caract);
fprintf(eq,"\n%u %s %s",&equipo.codigoe,equipo.marca,equipo.caract);
printf("Ahora el equipo se encuentra registrado %u%s%s");
fclose(eq);
getch(); break;
case 2: printf("\n\tHas entrado a buscar el equipo"); printf("\n\t"); printf("\n\tingrese codigo del equipo a buscar:"); scanf("%u",&codigo_e); eq=fopen("equipos.txt","r"); while(!feof(eq)){ fscanf(eq,"%u%s%s",&equipo.codigoe,equipo.marca,equipo.caract); if(codigo_e==equipo.codigoe){ printf("\n\t Equipo ncontrado :\n\t Codigo:%u\n\t Marca:%s\n\t Caracteristicas:%s\n\t",equipo.codigoe,equipo.marca,equipo.caract); } } fclose(eq); getch(); break;
} }
getch(); }
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Lo primero que debes hacer es cambiar los nombres de los encabezados por los correctos: <iostream>, <cstdio> y <cstdlib>, cambiar la definición de la función main a "int main() ..." y evitar el uso de la biblioteca conio de Borland, las razones de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|. Un error importante se encuentra en la primera llamada a scanf: utilizas "%u" para leer un valor de tipo "signed long" y eso no es correcto, en su lugar debes utilizar "%ld". El error principal se encuentra en la sentencia: fprintf(eq, "\n%u %s %s", &equipo.codigoe, equipo.marca, equipo.caract);
Al utilizar "&equipo.codigoe" el programa imprimirá el mismo valor en el archivo (la dirección en memoria de ese campo). Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
reeyesg
Desconectado
Mensajes: 25
|
no entendi mucho, soy nuevo en c++ ,, y bueno trate de hacer lo q me dice y me da error :s!
|
|
|
En línea
|
|
|
|
reeyesg
Desconectado
Mensajes: 25
|
El error principal se encuentra en la sentencia: fprintf(eq, "\n%u %s %s", &equipo.codigoe, equipo.marca, equipo.caract);
Al utilizar "&equipo.codigoe" el programa imprimirá el mismo valor en el archivo (la dirección en memoria de ese campo). Un saludo Listo mano, ese era el problema un millon de gracias ya solucione :$ .
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Archivos, Registros en c/c++
Programación C/C++
|
programador10
|
3
|
6,214
|
14 Junio 2011, 16:11 pm
por programador10
|
|
|
Pequeño inconveniente
Foro Libre
|
ANTRUCK
|
1
|
2,021
|
10 Agosto 2011, 10:54 am
por Randomize
|
|
|
Pedido o ayuda ARCHIVOS/REGISTROS
Programación C/C++
|
reeyesg
|
1
|
1,817
|
10 Febrero 2014, 18:40 pm
por ivancea96
|
|
|
ayuda con registros y archivos .txt en C++
Programación C/C++
|
chiripita
|
3
|
3,820
|
4 Agosto 2014, 10:25 am
por eferion
|
|
|
Problema - Registros y archivos
Programación C/C++
|
jaxoR
|
6
|
3,164
|
6 Noviembre 2014, 13:33 pm
por eferion
|
|