Probleme lecture sur l'entré standard 0 C
divx78
Messages postés
118
Statut
Membre
-
divx78 Messages postés 118 Statut Membre -
divx78 Messages postés 118 Statut Membre -
Bonjour a vous,
Ma config :
-- Language C
-- OS : Open SUSE
J'ai un problême a lire sur l'entré standard en C voila je m'explique je voudrai interagire avec l'utilisateur je suis en pleine création d'un minishell voici le code que je ne compren pas qu'il ne marche pas :) merci de votre aide
int main(int ac, char **av)
{
char *buff;
buff = malloc( 50 * sizeof(char));
while(1)
{
read(0, buff, 50); // Lecture sur l'entré standard
puts(buff); // Hum pas beau puts je ses :)
if(strcmp(buff, "dam") == 0)
puts("sa marche");
}
}
1 ere erreu : Quan je tape un plus petit mot que le précédent la memoir garde des traces sur mot precedent ex:
/>damien
/>dam
ien // Voila le reste
2 eme erreur : il ne rentre pas dans ma condition voila
Merci a vous :)
Ma config :
-- Language C
-- OS : Open SUSE
J'ai un problême a lire sur l'entré standard en C voila je m'explique je voudrai interagire avec l'utilisateur je suis en pleine création d'un minishell voici le code que je ne compren pas qu'il ne marche pas :) merci de votre aide
int main(int ac, char **av)
{
char *buff;
buff = malloc( 50 * sizeof(char));
while(1)
{
read(0, buff, 50); // Lecture sur l'entré standard
puts(buff); // Hum pas beau puts je ses :)
if(strcmp(buff, "dam") == 0)
puts("sa marche");
}
}
1 ere erreu : Quan je tape un plus petit mot que le précédent la memoir garde des traces sur mot precedent ex:
/>damien
/>dam
ien // Voila le reste
2 eme erreur : il ne rentre pas dans ma condition voila
Merci a vous :)
A voir également:
- Probleme lecture sur l'entré standard 0 C
- Lecture epub sur pc - Guide
- Confirmation de lecture whatsapp - Guide
- Accusé de lecture gmail - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Problème lecture clé usb - Guide
2 réponses
Salut,
1 ere erreu : Quan je tape un plus petit mot que le précédent la memoir garde des traces sur mot precedent ex:
/>damien
/>dam
ien // Voila le reste
Normal, read n'ajoute pas de '\0' à la fin de la chaîne. Donc utilise plutôt fgets, ça sera mieux.
2 eme erreur : il ne rentre pas dans ma condition voila
Normal aussi. Tu as appuyé sur la touche entrée que ton OS te traduit par un joli '\n'. Du coup, il faudrait mieux comparer avec "dam\n", ou alors virer le \n de ta variable buff avec strchr.
// Hum pas beau puts je ses :)
L'orthographe n'est pas belle (ses au lieu de sais). Mais puts est très joli ;).
Cdlt
1 ere erreu : Quan je tape un plus petit mot que le précédent la memoir garde des traces sur mot precedent ex:
/>damien
/>dam
ien // Voila le reste
Normal, read n'ajoute pas de '\0' à la fin de la chaîne. Donc utilise plutôt fgets, ça sera mieux.
2 eme erreur : il ne rentre pas dans ma condition voila
Normal aussi. Tu as appuyé sur la touche entrée que ton OS te traduit par un joli '\n'. Du coup, il faudrait mieux comparer avec "dam\n", ou alors virer le \n de ta variable buff avec strchr.
// Hum pas beau puts je ses :)
L'orthographe n'est pas belle (ses au lieu de sais). Mais puts est très joli ;).
Cdlt