Título: Error ld 1 returned status. Ayuda plox Publicado por: daaralvarez en 20 Noviembre 2018, 08:52 am Mi código:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <iostream.h> struct dato { int i; dato *s; }*a, *i, *p, *e; int da; int buscar(int d); void insertar(int dat); void mostrar(void); void borrar(void); void menu(void); void guardar(void); void cargar(void); main() { menu(); } void menu(void) { int opc,da; do { cout<<"1 - Buscar datos"; cout<<"\t2 - Insertar datos"; cout<<"\t3 - Mostrar todos los datos"; cout<<"\t4 - Borrar un dato"; cout<<"\t5 - Guardar datos a Archivo"; cout<<"\t6 - Cargar datos de Archivo"; cout<<"\t0 - Finalizar"; cout<<"\nSeleccione opcion: "; cin>>opc; switch(opc) { case 0: cout<<"\n\nFinaliza el programa"; getch(); //usar delete para eliminar //toda la lista p=i; while(p) { a=p; p=p->s; delete(a); } exit(0); case 1: cout<<"\n\nIngrese dato a buscar: "; cin>>da; if(buscar(da)) cout<<"\n\nDato existe"; else cout<<"\n\nDato NO EXISTE"; getch(); break; case 2: cout<<"Ingrese dato: "; cin>>da; insertar(da); break; case 3: mostrar(); break; case 4: borrar(); break; case 5: guardar(); break; case 6: cargar(); break; //por las dudas que el operador ingrese //cualquier verdura, fruta u otro tipo de hierba default: cout<<"\n\nOPCION NO VALIDA!!!"; getch(); } }while(opc); } void mostrar(void) { int cont=1; if(!i) { cout<<"\n\nNO HAY LISTA PARA MOSTRAR"; getch(); return; } p=i; cout<<endl<<endl; while(p) { cout<<cont++<<" - Valor = "<<p->i<<endl; p=p->s; } cout<<"\n\nEso es todo"; getch(); } int buscar(int d) { if (!i) { cout<<"No hay datos en la lista!!!"; getch(); return(0); } p=i; a=NULL; while(p->s && p->i<d) { a=p; p=p->s; } return(p->i==d?1:0); } void insertar(int dat) { if(!i) { i=new(dato); i->s=NULL; i->i=dat; return; } if(buscar(dat)) { cout<<"\n\nDato existente"; getch(); return; } e=new(dato); e->i=dat; if(p==i && p->s) { e->s=p; i=e; return; } if(p==i && !p->s) { if(p->i < e->i) { p->s=e; e->s=NULL; } else { e->s=p; i=e; } return; } if(p->s) { a->s=e; e->s=p; return; } if(e->i > p->i) { e->s=NULL; p->s=e; } else { a->s=e; e->s=p; } } void borrar(void) { cout<<"\n\nIngrese dato a eliminar: "; cin>>da; if(buscar(da)) { if(a) a->s=p->s; else i=p->s; delete(p); cout<<"\n\nDato eliminado"; } else cout<<"\n\nDato no se encuentra"; getch(); } void guardar(void) { FILE *arch; arch=fopen("DATOS-A.TXT","w"); if(!i) { cout<<"\n\nNO HAY LISTA PARA GUARDAR"; getch(); return; } p=i; while(p) { fprintf(arch,"%i\n",p->i); p=p->s; } cout<<"\n\nArchivo Guardado"; fclose(arch); getch(); } void cargar(void) { int c,x; FILE *arch; arch=fopen("DATOS-A.TXT","r"); if(!arch) { cout<<"\n\nNO EXISTE EL ARCHIVO"; getch(); return; } do { c=fscanf(arch,"%i\n",&x); if(c!=EOF) { insertar(x); } } while (c!=EOF); cout<<"\n\nArchivo Cargado"; fclose(arch); getch(); } Todo iba bien resolviendo los errores de sintaxis hasta que lo volví a compilar me arrojó el siguiente error... [Error] ld 1 returned estatus. Obviamente ya no compiló. Ya he tratado de resolverlo pero no se como, ayuda porfa, soy nuevo en esto. Agradezco de antemano su ayuda. Título: Re: Error ld 1 returned status. Ayuda plox Publicado por: K-YreX en 20 Noviembre 2018, 08:59 am Prueba a quitar el ".h" a <iostream>. Además tienes que incluir <using namespace std;>.
En ocasiones devuelve error si lo tienes abierto en otra pantalla. Y si con esto no se soluciona, adjunta el error que te salga. PD: El código entre etiquetas GeSHi. Y... una cosa más... Ese código es tuyo? O está sacado de algún sitio? Porque usar <iostream> y <stdio.h>.... Aquí hay algo raro. Título: Re: Error ld 1 returned status. Ayuda plox Publicado por: daaralvarez en 20 Noviembre 2018, 09:25 am Gracias, tomé la base de una página en internet, luego sólo fui quitando y poniendo cosas para ajustar el código a mis necesidades :P
Pero gracias, ya hice esas 2 cosas y ya jala. Muchas gracias. ;D Título: Re: Error ld 1 returned status. Ayuda plox Publicado por: K-YreX en 20 Noviembre 2018, 09:34 am Como programa funciona pero si estás interesado en la programación y quieres mejorar un poco ese código:
- Elimina <stdio.h>. No estás usando entradas/salidas de C, sino de C++. - Elimina <conio.h> por favor. Y cómo uso <getchar()> ?:huh:. No lo uses, usa <cin.get()> para lo que no necesitas <conio.h>. - Las funciones que no reciben parámetros en C++ no es necesario escribir <void> en los parámetros. - No uses librerías acabadas en ".h" sino que empiecen por "c". Es decir: <stdlib.h> -> <cstdlib>y así con todas. Y esto sin haber llegado a mirar el programa por dentro. Si no te interesa y sólo quieres que el programa funciones, ya está, objetivo conseguido. |