Petite boucle en C
Fermé
seo610
Messages postés
596
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
30 juin 2015
-
17 avril 2010 à 04:06
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 17 avril 2010 à 19:04
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 17 avril 2010 à 19:04
A voir également:
- Petite boucle en C
- Petite amie virtuelle en français - Accueil - Intelligence artificielle
- Boucle excel sans macro - Forum Excel
- Classez ces fichiers de la plus petite taille (1) à la plus grande (4). - Forum Bases de données
- Petite croix snap - Forum Snapchat
- Boucle cmd - Forum Programmation
2 réponses
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
17 avril 2010 à 07:05
17 avril 2010 à 07:05
} while (buffer != "endNow");
Ton texte de boucle est correct au niveau de la syntaxe, donc la compilation se passe sans erreur.
Par contre cela ne fait pas du tout ce que tu souhaites !!
Ici tu compares l'adresse du buffer buffer à celle où est stockée la chaîne "endNow". Ces deux adresses étant toujours différentes, le test est toujours vrai !...
Il te faut comparer le contenu des chaînes :
} while (strcmp( buffer , "endNow"));
strcmp() retourne 0 (donc Faux) quand égalité est vérifiée
Ton texte de boucle est correct au niveau de la syntaxe, donc la compilation se passe sans erreur.
Par contre cela ne fait pas du tout ce que tu souhaites !!
Ici tu compares l'adresse du buffer buffer à celle où est stockée la chaîne "endNow". Ces deux adresses étant toujours différentes, le test est toujours vrai !...
Il te faut comparer le contenu des chaînes :
} while (strcmp( buffer , "endNow"));
strcmp() retourne 0 (donc Faux) quand égalité est vérifiée
seo610
Messages postés
596
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
30 juin 2015
102
17 avril 2010 à 19:04
17 avril 2010 à 19:04
Bon,
j'ai essayé ça :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char buffer[1024] = "";
do
{
fgets(buffer, 1024, stdin);
printf(" : %s", buffer);
} while (strcmp( buffer , "endNow" ));
printf("\nTest concluant\n");
system("PAUSE");
return 0;
}
Mais ca ne marchais pas plus, donc j'ai essayé ça :
int main(int argc, char *argv[])
{
char buffer[1024] = "";
int stop = 1;
do
{
fgets(buffer, 1024, stdin);
printf(" : %s", buffer);
if (strcmp( buffer , "endNow" ) == 0)
{
stop = 0;
}
else
{
stop = 1;
}
} while (stop == 1);
printf("\nTest concluant\n");
system("PAUSE");
return 0;
}
Mais ca ne marche pas plus aussi, je ne comprend vraiment pas pourquoi,
pouvez vous m'aider? merci beaucoup
j'ai essayé ça :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char buffer[1024] = "";
do
{
fgets(buffer, 1024, stdin);
printf(" : %s", buffer);
} while (strcmp( buffer , "endNow" ));
printf("\nTest concluant\n");
system("PAUSE");
return 0;
}
Mais ca ne marchais pas plus, donc j'ai essayé ça :
int main(int argc, char *argv[])
{
char buffer[1024] = "";
int stop = 1;
do
{
fgets(buffer, 1024, stdin);
printf(" : %s", buffer);
if (strcmp( buffer , "endNow" ) == 0)
{
stop = 0;
}
else
{
stop = 1;
}
} while (stop == 1);
printf("\nTest concluant\n");
system("PAUSE");
return 0;
}
Mais ca ne marche pas plus aussi, je ne comprend vraiment pas pourquoi,
pouvez vous m'aider? merci beaucoup