elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9
11  Programación / Programación C/C++ / Re: Función que retorna dos tipos distintos de datos. en: 18 Mayo 2011, 20:52 pm
Ya entendí mas o menos jeje, es que de C++ no estoy muy puesto, de todas formas vi mi error, la verdad que si paso una variable por referencia no necesito que la función la retorne, es una tontería hacer eso, así puedo devolver enteros en caso de fallos.

Un saludo y gracias.
12  Programación / Programación C/C++ / Re: El dichoso error de fgets. en: 18 Mayo 2011, 20:51 pm
Muchas gracias por la explicación, ya creo que entendí, como hay algo en stdin getchar no esperara que yo pulse ninguna tecla pues ya hay algo en el, de esta forma avanzara posiciones hasta llegar al salto de linea, por lo tanto stdin no tendra ningún salto después de esto.
Así fgets no dará problemas.

Un saludo y gracias de nuevo.
13  Programación / Programación C/C++ / Re: ¿Es normal hacer este tipo de conversiones de punteros void? en: 18 Mayo 2011, 20:50 pm
Muchas gracias, pero ¿el enum para que serviría?
14  Programación / Programación C/C++ / Re: ¿Es normal hacer este tipo de conversiones de punteros void? en: 17 Mayo 2011, 19:54 pm
Gracias, ¿sería algo así?:

Código
  1. struct punteros_l {
  2. medicos *primeroM;
  3. pacientes *primeroP;
  4. }
  5.  
  6. union punteros_l punteros;
  7.  
  8. enum opcion (0 = punteros.primeroM,1 = punteros.primeroP);
  9.  
Es que me parece muy interesante lo que dices y quiero llegar a comprenderlo.
15  Programación / Programación C/C++ / Re: El dichoso error de fgets. en: 17 Mayo 2011, 12:30 pm
Muchas gracias por la explicación, aunque no entiendo aún muy bien lo del bucle, ¿lo que haría sería que la próxima vez que se ingresen caracteres por el teclado, espere a que el usuario pulse enter?
Pero de que forma getch hace eso, ya que por ejemplo en mi código hay después del bucle un printf y no directamente la función fgets.

Un saludo.
16  Programación / Programación C/C++ / Re: Función que retorna dos tipos distintos de datos. en: 17 Mayo 2011, 11:58 am
Muchísimas gracias por la respuesta, disculpadme igual no me explique bien, la función no recibe el valor por referencia si no por valor, ya que "pacientes *primero" es un puntero a una lista del tipo pacientes que antes he definido, entonces lo que hago es mandar ese puntero por valor a la función y que luego retorne ese puntero.

Igual esto es lo raro que hago que debería simplemente mandar por referencia el puntero y dejarme de retornos, vamos que es una tontería mandar a la función un puntero y devolver el mismo xD.

Muchas gracias Sauruxum, ¿que significa sobrecargar la función?.

Un saludo.
17  Programación / Programación C/C++ / Re: Función que retorna dos tipos distintos de datos. en: 17 Mayo 2011, 01:20 am
Muchas gracias, pero hago eso y no me compila, me da error en la conversión , pongo el código a continuación:
Código
  1. pacientes * read_ficP(pacientes *primero){
  2. FILE *fp;
  3. storage infoP;
  4. int a = 1;
  5. pacientes *aux,aux2;
  6.  
  7. if((fp = fopen("clinicaP.bin","r+b")) == NULL) {printf("Error al abrir el archivo"); return 0;}
  8. fseek (fp, 0L, SEEK_SET);
  9.  
  10. /* Es mejor usar este fragmento, ya que en caso de fallo de fread, hay menos posibilidades de que se
  11.  produzca fallo de segmentación */
  12.  
  13.  while(1){
  14.   if(fread(&aux2,sizeof(pacientes),1,fp) < 1){fclose(fp); return primero;}
  15.   infoP.dniP = aux2.dni;
  16.   strcpy(infoP.nombreP,aux2.nombre);
  17.   infoP.dniM = aux2.dniM;
  18.   add_nodP(&primero,infoP);
  19.  }
  20. return 1;
  21. }

Un saludo y gracias.
18  Programación / Programación C/C++ / Re: El dichoso error de fgets. en: 17 Mayo 2011, 01:18 am
Muchas gracías, encontre ese mismo codigo aquí al final jej pero tengo un problema grandisimo para entenderlo.

Tal como entiendo esto:
Código
  1. while(getchar()!='\n');

lo que haría sería avanzar posiciones en stdin hasta encontrar un salto de linea, en ese momento studin no contiene el salto de linea, pero no entiendo el funcionamiento de esto, si supuestamente yo no pulso ninguna tecla, ¿que hace que getchar() avance posiciones en stdin?

¿La función setbuf(stdin, NULL) que haría?

Un saludo y muchas gracias de nuevo.
19  Programación / Programación C/C++ / El dichoso error de fgets. en: 17 Mayo 2011, 00:47 am
Disculpad las molestias pero tengo el siguiente error:
He leído en este foro las cosas que no se deben hacer al programar en C, una de ellas era utilizar funciones como scanf que no tienen limite de caracteres insertados, para ello el tutorial proponer fgets, otras de las cosas sobre las que habla el manual es sobre el uso de fflush(stdin) que aunque la gente lo use para una cosa no sirve para eso, ya que este limpia el buffer de salida y no el de entrada.

El caso es que al usar fgets no me deja introducir los datos, ya que salta directamente a la siguiente linea, al poner fflush(studin) se soluciona pero eso no me vale, yo quiero saber por que es esto y una forma segura de solucionarlo y no con fflush(studin) y sus comportamientos caóticos.

El fragmento de código es este:

En main defino estas dos variables:                       
Código
  1. char tempnum;
  2. int dni = 0;
                       
Código
  1. case 'c': case 'C':
  2.                        printf("Introduzca el dni del medico a buscar: ");
  3.                        fgets(tempnum,11,stdin);
  4.                        if (tempnum[strlen(tempnum)-1] == '\n')
  5.                           tempnum[strlen(tempnum)-1] = '\0';
  6.                        sscanf(tempnum,"%d",&dni);
  7.                        search_listM(primero,dni);
  8.                        printf("Pulse una tecla para continuar.");
  9.                        getchar();
  10.                        break;

Un saludo.
20  Programación / Programación C/C++ / Re: Función que retorna dos tipos distintos de datos. en: 17 Mayo 2011, 00:31 am
Gracias por la respuesta, pero creo que estas confundido, lo que tu haces es pasarle un puntero por referencia a la función y que la función retorne un entero.

Lo que yo quiero es que internamente la función según unas condiciones retorne o bien un entero si hay error o una estructura en caso de que todo sea correcto.

Un saludo : D .
Páginas: 1 [2] 3 4 5 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines