elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:52  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  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 820 veces)
ZedGe

Desconectado Desconectado

Mensajes: 111


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

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: 282


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

¿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 (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


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

independientemente de como tengas la lista...

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

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 por BlackZeroX (Astaroth) » En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
Caster


Desconectado Desconectado

Mensajes: 405


Divide y vencerás


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

Utiliza fgets();
Saludos
En línea

"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe, he aquí el verdadero saber."
(Confucio)

ZedGe

Desconectado Desconectado

Mensajes: 111


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

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
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


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

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: 111


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

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
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


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

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 (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


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

ammm...

Código
 
#define SIZE_RUT 15
#define SIZE_NAME 15
#define SIZE_SURNAME 15
 
//typedef struct DataClient_ DATACLIENT, *LPDATACLIENT;
//typedef struct Node NODE, *LPNODE;
 
typedef
struct DataClient_
{
   char szRut[SIZE_RUT];
   char szName[SIZE_NAME];
   char szSurName[SIZE_SURNAME];
}
DATACLIENT, *LPDATACLIENT;
 
typedef
struct Node_
{
  DATACLIENT dataClient;
  Node_* lpNext;
}
NODE, *LPNODE;;
 
/*
///No le veo utilidad a esta estructura...
typedef
struct LIST
{
   Nodo *lpBEGIN;
}
LIST, *LPLIST;
*/

 
void unloadNodes(LPNODE lpNode)
{
   if (!lpNode)
       return;
   unloadNodes(lpNode->lpNext);
   fprintf(stdout, "%s\n", lpNode->dataClient.szName); //  Antes de descargas mostramos...
   free(lpNode);
}
 
int main()
{
   LPNODE lpNodeFirst = (LPNODE)malloc(sizeof(NODE));
   LPNODE lpNodeNow = lpNodeFirst;
   int i = 0;
 
   for (i = 0; i < 10; ++i)
   {
       memset(lpNodeNow->dataClient.szName, 0, (SIZE_NAME - 1));
       fgets(lpNodeNow->dataClient.szName, (SIZE_NAME - 1), stdin);
       lpNodeNow->lpNext = (i < 9) ? (LPNODE)malloc(sizeof(NODE)): NULL;
       lpNodeNow = lpNodeNow->lpNext;
   }
   /// Descargar TODOS los Nodos empesando desde el ultimo.
   unloadNodes(lpNodeFirst);
 
   return EXIT_SUCCESS;
}
 
 

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

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
ZedGe

Desconectado Desconectado

Mensajes: 111


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

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
Como leer el nombre de un archivo?
GNU/Linux
hernanlp83 2 356 Último mensaje 24 Noviembre 2005, 18:51
por el-brujo
pregunta sobre la captura de video en pantalla
Multimedia
interruptor 2 604 Último mensaje 5 Septiembre 2007, 09:36
por interruptor
AYUDA CON BAT, LEER NOMBRE DE ARCHIVO...
Scripting
elecktra 3 928 Último mensaje 28 Noviembre 2008, 00:56
por Darioxhcx
Leer archivo con nombre variable
Scripting
Jonha000 3 857 Último mensaje 10 Agosto 2010, 15:42
por EddyW
Duda sobre leer datos por pantalla y capturarlos
Java
ZedGe 4 979 Último mensaje 10 Junio 2011, 15:59
por Valkyr
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines