• Viernes 15 de Noviembre de 2024, 09:26

Autor Tema:  Problemas con printf y scanf al ingresar......  (Leído 1637 veces)

Dragon741321xz

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Problemas con printf y scanf al ingresar......
« en: Martes 28 de Diciembre de 2010, 20:26 »
0
Hola que tal

Me gustaria mucho que me puedieran ayudar con un problema que se me ha presentado yo soy un principiante claramente, pero no se porque cuando quiero ingresar valores solo me deja ingresar los primeros 2 valores, los cuales son nit y nombre, pero los otros no, ya que si solo ingreso numeros si me corre bien el programa pero al ingresar letras me sale el siguiente titulo del y luego se me cierra sin que yo pueda ingresar la informacion que quiero

me peuden ayudar con esto.

aqui esta el programa

Citar
# include <iostream.h>
# include <conio.h>
# include <stdio.h>

main()
{
     char nit, nombre, numero, casa;
           
      {
      cout << "Datos Generales Del Contribuyentenn";
      printf ("Nit:");
      scanf ("%d",&nit);
      printf ("Nombre:");
      scanf ("%d",&nombre);

     printf ("Numero o Nombre De Calle O Avenida");
      scanf ("%d",&numero);
      printf ("Numero de Casa");
      scanf ("&d", &casa);
     

     
      }
 getch();
}


el programa si me funciona pero si solo le ingreso numeros, pero como hacer para poder ingresar nombre y numeros en distitnos lugares sin qeu se me cierre

gracias

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Problemas con printf y scanf al ingresar......
« Respuesta #1 en: Martes 28 de Diciembre de 2010, 21:56 »
0
Dragon, se qe eres nuevo, pero por favor, te suplico que no repitas lo que preguntas, este es el segundo hilo que escribes para preguntar sobre lo mismo, se considera de mala educacion repetir varas veces en hilos diferentes la misma pregunta, aqui la mayoria trabajamos y contestamos en nuestro tiempo libre, con la intencion de ayudar pero sin cobrar nada a cambio, y sin obligacion de ninguna especie.

Si nadie te responde es porque o nadie sabe la respuesta, o nadie la ha podido leer todavia, o formulaste mal la pregunta, en todo caso, debes ser paciente, por lo regular las respuestas pueden tardar 24 horas o mas, dependiendo del tiempo libre de los que ayudamos en el foro, asi que se paciente al esperar respuesta, y no por mucho que repitas la pregunta te contestaran antes, por el contrario, nadie te hara caso y te tomaran por persona molesta.

Te recomiendo que leas esto:

Cómo Hacer Preguntas De Forma Inteligente

Bueno, despues de las observaciones veamos el problema.

La verdad, por el codigo que pones, me doy cuenta que no tienes ni idea de porgramacon en lenguaje C/C++, antes que nada recomendaria que consigas algun curso o libro de lenguaje C/C++, porque si no seguiras en las mismas.

En el programa que publicas, estas leyendo variables de tipo char como si fueran numeros, ademas defines char solamente, pero para guardar nombres completos en realidad necesitas arreglos de char (cadenas), no char solamente.

para leer definir cadenas y leerlas con scanf, se utiliza %s como en el siguiente ejemplo:

Código: C++
  1.  
  2. char nombre[30];
  3. scanf("%s", nombre);
  4.  
  5.  

pero scanf tiene un porblema, no te permite leer cadenas que contengan espacios, para leer cadenas con espacios te recomiendo el uso de fgets(), que ademas evita que leas mas caracteres de los que caben en tu variable, que puede llevar a otros errores:

sintaxis:
fgets ( char * str, int num, FILE * stream );
Ejemplo:
Código: C++
  1.  
  2. char nombre[30];
  3. fgets ( nombre, 30, stdin);
  4.  
  5.  

El numero que se pone es el tamaño de tu arreglo de char (cadena, en este caso 30, si fuera 20 o 40, deberas colocar 20 o 40 en fgets respectivamente.

El ejemplo anterior es utilizando funciones de lenguaje C, pero tambien podrias utilizar en su lugar C++, entonces podrias usar el tipo string en lugar de un arreglo de char, y cout y cin en lugar de printf y fgets respectivamente pero explicarte eso iria mas lejos de darte solo una guia, como dije antes lo mejor es que consigas un curso de lenguaje C++, aprendas las bases, practiques, y entonces sabras mejor que hacer, en ese caso si te surge alguna duda despues de haber leido, puedes regresar y preguntar tus pequeñas dudas (espero que no quieras que te expliquen todo ;)) y entonces yo o cualquier otra persona te podra ayudar mas

Saludos y suerte :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Dragon741321xz

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problemas con printf y scanf al ingresar......
« Respuesta #2 en: Martes 28 de Diciembre de 2010, 23:02 »
0
Muchas gracias por la informacion y por el consejo me ayudo bastante....