La lecture de plusieurs lignes de saisie avec scanf()

Pertinentes extrait de code:

char input [1024];

printf("Enter text. Press enter on blank line to exit.\n");
scanf("%[^\n]", input);

Qui va lire l'ensemble de la ligne jusqu'à ce que l'utilisateur appuie sur [enter], empêchant l'utilisateur d'entrer une deuxième ligne (si ils le souhaitent).

À la sortie, ils frapper [enter], puis [entrée]. Alors, j'ai essayé toutes sortes de boucles while, pour les boucles, et si les déclarations autour de la scanf() participation de la nouvelle ligne de la séquence d'échappement, mais rien ne semble fonctionner.

Des idées?

scanf() est difficile à utiliser, surtout pour ce. Utilisation fgets() au lieu de cela, il va être beaucoup plus simple.
S'il vous plaît ne pas mentionner gets comme si c'était une bonne option pour quoi que ce soit. C'est trop dangereux (et heureusement finalement retiré de la langue).
C'est une école de chose. Nous n'avons jamais appris fgets(). Les instructions dire, à lire dans l'ensemble des lignes de texte, et alors que nous devrons utiliser scanf() à lire une ligne entière.
Passé sous silence 🙂 je suis d'accord, mais n'étais pas au courant qu'il avait été supprimé. Merci!
Il n'a pas d'importance si vous avez "appris" fgets() ou pas. La façon de lire en entier les lignes de texte consiste à utiliser fgets().

OriginalL'auteur user688604 | 2012-11-27