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


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con un programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un programa en C  (Leído 4,797 veces)
ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #10 en: 6 Enero 2012, 13:22 pm »

Repasando mi codigo, resulta q SI tenia los corchetes [] puestos, para definir arrays de punteros, y aun asi, no me va. Y n entiendo porq. Alguien tiene algo parecido, q pueda ayudarme??? (bueno si me lo pasa, mejor, asi puedo contrastar, porq cojones no me funciona).


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #11 en: 6 Enero 2012, 16:49 pm »

A riesgo de repetir las soluciones que ya te han dado ...

El problema en la función "recoger_libro" no es la declaración del parámetro "libro" sino su uso.

Cuando una función se declara de esta forma:
Código
  1. void recoger_libro(T_libreria libro[]) ...
Se procesa como si el parámetro fuera declarado así:
Código
  1. void recoger_libro(T_libreria *libro) ...
Y para acceder al objeto apuntado por "libro" debes utilizar el operador "[]" (como ya te indicaron) o bien el operador "->".

Por ello hay que cambiar esa funcion a:
Código
  1. int recoger_libro(T_libreria libro[])
  2. {
  3.   int n, i;
  4.  
  5.   printf("Libros a introducir? ");
  6.   scanf("%d", &n);
  7.  
  8.   for (i = 0; i < n; i++){
  9.      printf("Titulo del libro: ");
  10.      gets(libro[i].titulo);
  11.  
  12.      printf("Autor del libro: ");
  13.      gets(libro[i].autor);
  14.  
  15.      printf("A%co de publicaci%cn: ", 164, 162);
  16.      scanf("%d", &libro[i].fecha_publicacion.anno);
  17.  
  18.      printf("Mes de publicaci%cn: ", 162);
  19.      scanf("%d", &libro[i].fecha_publicacion.mes);
  20.  
  21.      printf("Datos guardados.");
  22.      system("cls");
  23.   }
  24.  
  25.   return i;
  26. }

También hay que evitar el uso de la función "gets" utilizando en su lugar "fgets". Mas información sobre el tema en |Lo que no hay que hacer en C/C++. Nivel basico|.

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
ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #12 en: 6 Enero 2012, 21:40 pm »

Ya veo, rir3760, ahora entiendo cosas. Gracias por la ayuda,
Bueno otra cosita, q es eso de fgets, y como se usa, porq no me a quedado muy claro en el "manual" que has incluido, si alguien me lo puede explicar, como si fuese tonto (cosa q en programacion asi soy yo, un inepto total), se lo agradeceria de todo corazon, bueno eso y todo lo demas.
En línea

ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #13 en: 6 Enero 2012, 22:28 pm »

Otra cosa, q no entiendo. Cuando llamo a las funciones, me van bien, pero no sale de ellas, como hago q acaben las funciones y me vuelva a salir el menu???
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,853 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,639 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
Ayuda con programa en vb
Programación Visual Basic
BriaNUR 1 1,582 Último mensaje 12 Febrero 2006, 16:55 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines