Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Errores en la recogida de datos CHAR

Estas en el tema de Errores en la recogida de datos CHAR en el foro de C/C++ en Foros del Web. Buenas, tengo que recoger 4 datos, 2 de ellos char y 2 int. Los int se recogen sin problema, pero los char van un poco ...
  #1 (permalink)  
Antiguo 18/12/2010, 21:49
Avatar de Kashir  
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, España
Mensajes: 57
Antigüedad: 15 años, 8 meses
Puntos: 2
Pregunta Errores en la recogida de datos CHAR

Buenas, tengo que recoger 4 datos, 2 de ellos char y 2 int.

Los int se recogen sin problema, pero los char van un poco a su bola, me fallan como quieren y cuando quieren.

Estoy empezando a programar así que a lo mejor me salto un paso o tengo un error de sintaxis.

Dejo el código (es C)

Código C:
Ver original
  1. #include <stdio.h>
  2. main(){
  3.        system("title Ejercicio 11: Salarios");
  4.        
  5.        //Variables.
  6.        char nombre,apellidos;
  7.        int sbase,antig;
  8.        
  9.        //Recogida de datos.
  10.        printf("Introduzca su nombre: "); scanf("%s",&nombre);
  11.        printf("Introduzca sus apellidos: "); scanf("%s",&apellidos);
  12.        printf("Introduca su salario base: "); scanf("%d",&sbase);
  13.        printf("Introduzca su antiguedad en la empresa: "); scanf("%d",&antig);
  14.        
  15.        //Pausa.
  16.        getch();
  17.        }

El caso es que teneis que probarlo para verlo. También me dijeron que en los scanf de "char" no es necesario el ampersan ( & ) pero sin él me peta a la primera.

Help xD

Sin más.
  #2 (permalink)  
Antiguo 19/12/2010, 00:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Errores en la recogida de datos CHAR

Dejale los &, aparte de eso me parece que le estas pifiando en la declaracion de los char, como lo estas haciendo es solo UN caracter el esperado y veo que tu tienes NOMBRE Y APELLIDOS que evidentemente lleva mas de un caracter, para ello debes delcarar de la forma char cad[20] por ejemplo, luego si usas este arreglo debes tomar la cadena con(sin ampersand)

char cad[20];
printf("Introduce una palabra: "); scanf("%s",cad);


Saludos cordiales.
  #3 (permalink)  
Antiguo 19/12/2010, 11:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 74
Antigüedad: 15 años
Puntos: 1
Respuesta: Errores en la recogida de datos CHAR

Para cadenas de caracteres no necesitas scanf ya que es una tentrada de datos si no una cadena necesitas usar gets();

gets(): Lee una cadena de caracteres introducida por el teclado y la sitúa en una dirección apuntada por su argumento de tipo puntero a carácter.

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream.h>
  4. #define CAD 50
  5. main(){
  6.        system("title Ejercicio 11: Salarios");
  7.        
  8.        //Variables.
  9.        char nombre[CAD],apellidos[CAD ];
  10.        int sbase,antig;
  11.        
  12.        //Recogida de datos.
  13.        printf("Introduzca su nombre: ");gets (nombre);
  14.        printf("Introduzca sus apellidos: ");gets (apellidos);
  15.        printf("Introduca su salario base: "); scanf("%d",&sbase);
  16.        printf("Introduzca su antiguedad en la empresa: "); scanf("%d",&antig);
  17.        
  18.        //Pausa.
  19.        getch();
  20.        }

Última edición por vnvnation; 19/12/2010 a las 11:37
  #4 (permalink)  
Antiguo 19/12/2010, 12:18
Avatar de Kashir  
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, España
Mensajes: 57
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Errores en la recogida de datos CHAR

Gracias opentags y vnvnation, con gets(); me funciona perfecto.

Sin más.

Etiquetas: char, recogida
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:00.