2010-11-24 6 views

Répondre

3

Regardez fgets

La fonction fgets() lit au plus un inférieur au nombre de caractères spécifiés par n du flux donné et les stocke dans la chaîne arrête quand s.Reading un caractère de nouvelle ligne est trouvé, à la fin de fichier ou erreur. La nouvelle ligne, le cas échéant, est conservée. Si des caractères sont lus et qu'il n'y a pas d'erreur, un caractère `\ 0 ' est ajouté pour terminer la chaîne .

1

Je suppose que vous cherchez

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

qui va lire jusqu'à un séparateur de retour à la ligne. Ou si vous utilisez un autre delimiter

ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream); 
+0

uniquement sur Linux ou un autre système utilisant GNU libc « getline() et getdelim() sont des extensions GNU Ils sont disponibles depuis la libc 4.6.27. "(Http://linux.die.net/man/3/getline) –

+0

@Paul; Utilisé pour être une extension GNU oui, il fait aujourd'hui partie de POSIX.1-2008. – falstro

+0

merci. Je dois lire à ce sujet - à quel point est-il largement appliqué? –

1

Utilisez fgets pour obtenir votre entrée:

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