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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pregunta sobre leer nombre por pantalla en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre leer nombre por pantalla en C  (Leído 5,894 veces)
ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Pregunta sobre leer nombre por pantalla en C
« en: 26 Diciembre 2011, 04:55 am »

Tengo una estructura tipo agenda, y necesito que al preguntar por un nombre se pueda ingresar Juanito Perez y al imprimirlo nuevamente salga Juanito Perez


tengo la declaracion

Código:
char Nombre[15]

Lo pregunto y lo guardo como

Código:
scanf("%s",&nuevo->Nombres);fflush(stdin);


y al imprimir solo me sale Juanito trabajo con listas enlazadas por eso el -> y la estructura




En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #1 en: 26 Diciembre 2011, 06:38 am »

¿Podrías postear la declaración de toda la estructura y la parte del código donde lees el nombre?
A simple vista, declarase el campo nombre, y estás guardando en un campo nombres, los cuales son diferentes (por la "s" del final, pero supongo que es sólo un error de tipeo.
Otra cosa, fflush es una función para archivos de salida, no es recomendable usar fflush(stdin).


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #2 en: 26 Diciembre 2011, 06:47 am »

independientemente de como tengas la lista...

Código
  1.  
  2.    char szReaderBuffer[255];
  3.  
  4.    memset(szReaderBuffer, 0, 255);         //  No es necesario pero yo siempre lo hago...
  5.    fgets(szReaderBuffer, 255, stdin);      //  Escaneamos la entrada de datos NO IMPORTA SI HAY ESPACIOS... solo importa la longitud!¡.
  6.    fprintf(stdout, "%s\n", szReaderBuffer);//  Imprimimos.
  7. //    fflush(stdout);                         //  Forzamos la salida de datos... Solo si hay errores...
  8.  
  9.    return EXIT_SUCCESS;
  10.  
  11.  

Si no te sirve el codigo anterior entonces hay algo mal declarado en tu codigo...

Nota: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Dulces Lunas!¡.
« Última modificación: 26 Diciembre 2011, 06:54 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #3 en: 26 Diciembre 2011, 08:02 am »

Utiliza fgets();
Saludos
En línea

ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #4 en: 26 Diciembre 2011, 13:19 pm »

Utiliza fgets();
Saludos

el fgets usa un fichero char *fgets(char *cadena, int n, FILE *stream);

con el codigo de demon no puedo guardar la variable en mi lista enlazada aqui mi estructura del codigo

Código:
#ifndef ESTRUCTURAS_H_INCLUDED
#define ESTRUCTURAS_H_INCLUDED

typedef struct datosClientes{
   char RUT[15];
   char Nombres[15];
   char Apellidos[15];
} Datos;

typedef struct Nodo {
   Datos Persona;
   struct Nodo *sgte;
} Nodo;

typedef struct Lista {
   Nodo *inicial;
} Lista;

typedef int posicion;

#endif // ESTRUCTURAS_H_INCLUDED
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #5 en: 26 Diciembre 2011, 13:32 pm »

ZedGe: tambien podes usar stdin con fgets, lee el ejemplo que te dejaron antes.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #6 en: 26 Diciembre 2011, 13:36 pm »

ZedGe: tambien podes usar stdin con fgets, lee el ejemplo que te dejaron antes.

Lo uso, pero al querer poner ese szReaderBuffer[255] = nuevo->Persona.Nombre me dice que no puedo guardar un char[xx] a un char*
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #7 en: 26 Diciembre 2011, 13:44 pm »

LEE de nuevo y presta atencion, no intentes asignar cadenas.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #8 en: 26 Diciembre 2011, 15:18 pm »

ammm...

Código
  1.  
  2. #define SIZE_RUT 15
  3. #define SIZE_NAME 15
  4. #define SIZE_SURNAME 15
  5.  
  6. //typedef struct DataClient_ DATACLIENT, *LPDATACLIENT;
  7. //typedef struct Node NODE, *LPNODE;
  8.  
  9. typedef
  10. struct DataClient_
  11. {
  12.    char szRut[SIZE_RUT];
  13.    char szName[SIZE_NAME];
  14.    char szSurName[SIZE_SURNAME];
  15. }
  16. DATACLIENT, *LPDATACLIENT;
  17.  
  18. typedef
  19. struct Node_
  20. {
  21.   DATACLIENT dataClient;
  22.   Node_* lpNext;
  23. }
  24. NODE, *LPNODE;;
  25.  
  26. /*
  27. ///No le veo utilidad a esta estructura...
  28. typedef
  29. struct LIST
  30. {
  31.     Nodo *lpBEGIN;
  32. }
  33. LIST, *LPLIST;
  34. */
  35.  
  36. void unloadNodes(LPNODE lpNode)
  37. {
  38.    if (!lpNode)
  39.        return;
  40.    unloadNodes(lpNode->lpNext);
  41.    fprintf(stdout, "%s\n", lpNode->dataClient.szName); //  Antes de descargas mostramos...
  42.    free(lpNode);
  43. }
  44.  
  45. int main()
  46. {
  47.    LPNODE lpNodeFirst = (LPNODE)malloc(sizeof(NODE));
  48.    LPNODE lpNodeNow = lpNodeFirst;
  49.    int i = 0;
  50.  
  51.    for (i = 0; i < 10; ++i)
  52.    {
  53.        memset(lpNodeNow->dataClient.szName, 0, (SIZE_NAME - 1));
  54.        fgets(lpNodeNow->dataClient.szName, (SIZE_NAME - 1), stdin);
  55.        lpNodeNow->lpNext = (i < 9) ? (LPNODE)malloc(sizeof(NODE)): NULL;
  56.        lpNodeNow = lpNodeNow->lpNext;
  57.    }
  58.    /// Descargar TODOS los Nodos empesando desde el ultimo.
  59.    unloadNodes(lpNodeFirst);
  60.  
  61.    return EXIT_SUCCESS;
  62. }
  63.  
  64.  

Dulces Lunas!.
« Última modificación: 26 Diciembre 2011, 15:20 pm por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
ZedGe

Desconectado Desconectado

Mensajes: 154


Ver Perfil
Re: Pregunta sobre leer nombre por pantalla en C
« Respuesta #9 en: 26 Diciembre 2011, 17:35 pm »

okas gracias con el código queda mas claro
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta sobre la captura de video en pantalla
Multimedia
interruptor 2 2,037 Último mensaje 5 Septiembre 2007, 09:36 am
por interruptor
AYUDA CON BAT, LEER NOMBRE DE ARCHIVO...
Scripting
elecktra 3 2,904 Último mensaje 28 Noviembre 2008, 00:56 am
por Darioxhcx
Duda sobre leer datos por pantalla y capturarlos
Java
ZedGe 4 3,985 Último mensaje 10 Junio 2011, 15:59 pm
por Valkyr
Pregunta sobre gitaneo: ¿Cual es el nombre de esta artista?
Foro Libre
Eleкtro 7 2,606 Último mensaje 10 Diciembre 2015, 08:24 am
por Eleкtro
ifstream y while para leer lineas.. pregunta sobre sintaxis..
Programación C/C++
digimikeh 2 1,416 Último mensaje 2 Marzo 2019, 03:47 am
por digimikeh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines