comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Dos dudas en C

  • 7 Respuestas
  • 2212 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marcoam

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Noviembre 16, 2013, 10:37:29 am »
Hola muy buenas compañeros he empezado a aprender C y me ha surgido una duda:

La primera es que he creado una estructura

Código: C
  1. struct empleados{
  2.      char nombre[50];
  3.      int dni;
  4.      int sueldo;
  5. }empleado;

Y el problema es que al hacer fgets a un archivo uno de los datos pasa a una variable definida en el main llamada tambien char nombre [50] y cuando quiero pasar los datos recogidos en nombre a empleados.nombre me pone error: incompatyble types when asigning 'char [50]' from *char

La segunda duda es que cuando quiero definir una funcion en la que me piden como parametros un puntero que hace fopen a un archivo y otro parametros qie es struct
es readUsers(char file[],struct User users[])
Aqui el problema es que no se como pasar los parametros porque en file[] no se si poner solo el punter  o file[puntero] ni se como usarlo dentro de la funcion , y la struct me confunde lo de Users user si me podeis  poner un ejemplo.lo entenderia mejor Muchas gracias de antemano si os parece dudoso mi forma de explicarme decidmelo e intentare explicarme mejor que ahora estoy en el movil y no puedo escribir bien
« Última modificación: Agosto 20, 2014, 08:58:20 pm por Expermicid »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #1 en: Noviembre 16, 2013, 10:49:48 am »
Usa esta funcion para pasar datos nombre a empreado.nombre:

No tienes permisos para ver links. Registrate o Entra con tu cuenta

Código: C
  1. No tienes permisos para ver links. Registrate o Entra con tu cuenta((char*)empleado.nombre,(char*)nombre);

De todas formas te recomiendo que leas directamente a empleado.nombre envez de leer nombe y luego copiarlo:

Código: C
  1. #include <stdio.h>
  2.  
  3. struct Empleado
  4. {
  5.     char Nombre[50];
  6.     int DNI;
  7.     int Sueldo;
  8. };
  9.  
  10. int main()
  11. {
  12.     struct Empleado usuario;
  13.  
  14.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("Nombre: ");
  15.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",usuario.Nombre);
  16.  
  17.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("El nombre del empreado es %s\n",usuario.Nombre);
  18.  
  19.     return 0;
  20. }

La segunda:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
funcion(FILE * handle,struct empreado usuario)
« Última modificación: Noviembre 16, 2013, 10:56:03 am por Juan »

Desconectado marcoam

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Noviembre 16, 2013, 11:25:22 am »
Y como tendria que hacer para usar los parametros dentro de las llaves dentro de la funcion al dwfinirla
Como aun soy novato me confunden los [ ]

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #3 en: Noviembre 16, 2013, 11:35:37 am »
Como que los parametros dentro de las llaves? las llaves indican que es un array. Para ver lo que contiene x posicion del array solo tienes que hacer array[posicion] ej array[0] te devuelve el primer elemento del array.

Pon el codigo que tienes y di que es lo que no sabes en el codigo que te vamos a entender mejor.


Desconectado marcoam

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Noviembre 16, 2013, 01:08:55 pm »
me refiero a cuando la defines yo de momento solo tengo

Código: C
  1. int ReadUsersFromFile([color=yellow]char file[],struct usuarios users[][/color]){
  2.    
  3.     [color=red]file[][/color]=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos_usuarios.dat","r");
  4.    
  5. }

esto es lo que no se usar  :P
« Última modificación: Febrero 08, 2014, 04:37:22 pm por Expermicid »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #5 en: Noviembre 16, 2013, 01:39:57 pm »
No puedes llamar a una variable de la misma forma que un parametro de la funcion, por otra parte para pasar cadenas a funciones no es char variable[] es char * variable.

Con fopen lo que te retorna es un handle tipo FILE por eso esa linea seria asi: FILE * archivo = fopen("datos_usuarios.dat","r");

un saludo!

Desconectado marcoam

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #6 en: Noviembre 16, 2013, 01:54:15 pm »
Ya entiendo solo una ultima pregunta, tengo un struct creado y quiero pasarlo como segundo parametro de una funcion al invocarla desde el main()

Código: C
  1. typedef struct{
  2.     char nombre[10];
  3.     char clave[8];
  4.     int id;
  5.     int permisos;
  6.     int numero_de_usuario;
  7. }User;
  8.  
  9. int readUsersFromFile(char* file, [color=red]struct User users[][/color]){
  10.    
  11.    
  12. }
  13.  
  14. main(){
  15. FILE*datos=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos_usuarios.dat","r");
  16. readUsersFromFile(datos, [color=red]no se que tengo que poner aqui[/color]);
  17. }

No se como debo hacer para invocar la funcion con el struct User como parametro. Gracia :)
« Última modificación: Febrero 08, 2014, 04:37:35 pm por Expermicid »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #7 en: Noviembre 16, 2013, 02:34:33 pm »
Andas muy verde,,, tu codigo seria mas o menos asi:

Código: C
  1. typedef struct{
  2.     char nombre[10];
  3.     char clave[8];
  4.     int id;
  5.     int permisos;
  6.     int numero_de_usuario;
  7. }User;
  8.  
  9. int readUsersFromFile(char* file, struct User users){
  10.    
  11.    
  12. }
  13.  
  14. main(){
  15. struct User usuario;
  16. FILE*datos=No tienes permisos para ver links. Registrate o Entra con tu cuenta("datos_usuarios.dat","r");
  17. readUsersFromFile(datos, usuario);
  18. }
  19.  

Te recomiendo que te leas esto antes de hacer mas preguntas  :)

No tienes permisos para ver links. Registrate o Entra con tu cuenta

Veras como te soluciona muchas dudas!

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6196
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2123
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1529
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2662
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3338
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon