Los caracteres salen como números o incompletos



  • Cuando hago un programa donde uso caracteres (char) si quiero ingresar un nombre o palabra y pido que el programa me devuelva lo que ingrese me devuelve tan solo la primera letra o directamente me lo devuelve vació, sin nada dentro. Otra cosa es que si quiero que ya estén definidos los caracteres dentro del Char. Ejemplo: Char nombre[20] = { "Raul" }. en ves de devolverme el nombre me devuelve un numero, a veces es cero o uno. Alguna idea de como lo puedo solucionar?



  • @Dronger podrías mostrar tu código? y la salida por consola?



  • @Pablo-J.-Rogina Recién volví a probar y en el caso donde ya defino los caracteres dentro del char ya no me da problema por ahora, seguiré probando, el primer caso donde aun me da problemas es este

    char nombre[20];

    printf("Ingrese su nombre:\n");
    scanf("%s\n", &nombre[20]);
    
    printf("Su nombre es: %s\n", nombre);
    

    Si quito el [20] del scanf funciona pero por si acaso



  • @Pablo-J.-Rogina Bueno ahora el problema es este programa, luego de ingresar el nombre el programa termina sin dejarme ingresar lo demás, no veo un problema así que en lo que lo reviso por ahí le pueden echar un ojo también

    char nombre[20];
    int edad;
    float salario;

    printf("Ingrese su nombre: \n");
    scanf("%s\t\n", &nombre);
    
    printf("Ingrese su edad: \n");
    scanf("%d\n", &edad);
    
    printf("Ingrese su salario: \n");
    scanf("%f\n", &salario);
    
    printf("Su nombre es: %s\n", nombre);
    printf("Su edad es: %d\n", edad);
    printf("Su salario es: %f\n", salario);


  • @Dronger con todo respeto, así planteado tu problema nada tiene que ver con Qt, es simplemente código C++



  • @Pablo-J.-Rogina Osea que no puedo preguntar sobre problemas que no tengan que ver con Qt? Pero necesito ayuda, yo no use Qt antes, no tengo a quien preguntarle aparte, por eso siempre pregunto aca. Necesito preguntar estas cosas



  • Entonces nadie va a responder?........ok


  • Moderators

    Hola

    A lo que se refiere @Pablo-J-Rogina es que este es el foro oficial de Qt, y tú estás haciendo unas preguntas muy básicas de C.

    Ni siquiera estás usando Qt, no necesitabas hacer toda la instalación que te llevó varios días para hacer lo que estás poniendo aquí.

    Que puedes hacer alguna pregunta puntual sobre C++, pero como te digo, este foro está destinado a Qt.

    Como te dije, te recomiendo que mires algunos tutoriales sobre C/C++.

    Un saludo.


  • Moderators

    Hola @Dronger

    Si no me equivoco, el error lo tienes en scanf, scanf espera que le des la dirección de la variable en la que meter el dato que introduce el usuario, en tu caso tratas de capturar un array de char.

    El nombre del array de char es en realidad un puntero al primer elemento, por lo tanto no tienes que poner el símbolo & delante de nombre ni la dimensión del array, ya que este es ya una dirección de memoria donde almacenar lo tecleado.

    Y ten cuidado también con los límites, si te pasas de 20 caracteres pisarás zonas de memoria que no deberías.

    Un saludo



  • @juanki Gracias! Esa ultima advertencia quedara en mi memoria


Log in to reply