En mi código:

scanf("%s", &text);
printf("%s\n", text);

De entrada:

hi how are you

De salida:

hi

y no

hi how are you

¿qué puedo hacer para solucionarlo?

InformationsquelleAutor Gal | 2010-11-24

3 Comentarios

  1. 3

    Mirar fgets

    El fgets() función lee a más de uno
    a menos que el número de caracteres
    especificada por n de la secuencia dada
    y los almacena en la cadena de
    s.La lectura se detiene cuando un salto de línea
    personaje se encuentra, a fin de archivo o
    error. La nueva línea, si es que
    se conservan. Si los caracteres se leen
    y no hay ningún error, un `\0′
    el carácter se anexa al final de la
    cadena.

  2. 1

    Supongo que usted está buscando

    ssize_t getline(char **lineptr, size_t *n, FILE *stream);

    Que leerá un caracter delimitador. O si usted está usando algún otro delimitador

    ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);
    • Sólo en el caso de linux o cualquier otro sistema de uso de la libc de GNU «Tanto getline() y getdelim() son extensiones de GNU. Están disponibles desde libc 4.6.27. «(linux.die.net/man/3/getline)
    • Solía ser una extensión de GNU sí, es hoy en día parte de POSIX.1-2008.
    • gracias. Necesito leer sobre eso – ¿ ampliamente implementado es?
  3. 1

    Uso fgets para conseguir tu entrada:

    #include <stdio.h>
    #include <stdlib.h>
    int main(void) {
        char text[80];
        fgets(text, sizeof(text), stdin);
        printf("%s\n", text);
    }

Dejar respuesta

Please enter your comment!
Please enter your name here