2017-02-18 7 views
0

Je suis un débutant absolu à la programmation et je commence par le langage C. J'utilise actuellement le livre de programmation de début avec C pour les nuls par Dan Gookinfgets() interrompt la chaîne en 2 lignes

Lorsque vous faites un exercice avec fgets() ce qui suit est survenu.

C'est mon code

#include <stdio.h> 

int main() 
{ 
    char name[10]; 

    printf("Who are you? "); 
    fgets(name,10,stdin); 
    printf("Glad to meet you, %s.\n",name); 

    return(0); 
} 

Le résultat attendu devrait être un nom avec un arrêt complet à la fin et ce qui se passe est que l'arrêt complet porte sur la ligne suivante comme indiqué ci-dessous.

enter image description here

J'utilise les blocs de code IDE sur Unbuntu

+2

[fgets homme] (https://linux.die.net/man/3/fgets) : "Si un retour à la ligne est lu, il est stocké dans le tampon." – kaylum

+0

Vous supprimez simplement le saut de ligne de 'fgets'? – RoadRunner

+0

Veuillez ne pas publier d'images pour une sortie de texte simple - inclure la sortie de texte dans la question. Traitez-le comme du code. –

Répondre

0

Vous pouvez utiliser strtok(name, "\n")

+1

Cela échouerait si l'utilisateur tapait plus de 8 caractères avant d'appuyer sur la touche Entrée ou de taper Ctrl-D. – alk