Je veux tester si une chaîne que j'ai lu avec fgets() est "nouveau" ou "répéter". Si c'est répété, cela fonctionne comme il se doit, mais si c'est "nouveau" cela ne fonctionne pas. Quelqu'un sait pourquoi?strcmp avec fgets ne fonctionne pas comme il se doit
char repeatornew[7];
fgets(repeatornew,7,stdin);
if(strcmp("repeat",repeatornew) == 0)
{
puts("repeat it.");
}
else
{
if(strcmp("new",repeatornew) == 0)
{
puts("new.");
}
else
{
printf("Please repeat the input! \n");
}
}
Définir "ne fonctionne pas". –
Si je tape "repeat", il met ("repeat it."); mais si je tape "new" if does printf ("Veuillez répéter l'entrée! \ n!); Donc strcmp (" new ", repeatornew) n'est jamais 1 même quand je tape new – Peter
@ user2514164 Si vous tapez" repeat "Votre programme lira aussi la nouvelle ligne produite lorsque vous appuyez sur la touche Entrée, ainsi votre programme se répète \ n. Le dernier \ n peut être lu la prochaine fois si vous ne le lisez pas avec le premier appel de fgets() Et pensez à la place qu'il y a dans votre tableau, quand cela arrive, il y a peut-être de la place pour le \ n si vous entrez "new \ n") – nos