Probleme lecture sur l'entré standard 0 C
divx78
Messages postés
115
Date d'inscription
Statut
Membre
Dernière intervention
-
divx78 Messages postés 115 Date d'inscription Statut Membre Dernière intervention -
divx78 Messages postés 115 Date d'inscription Statut Membre Dernière intervention -
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
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Accusé de lecture gmail - Guide
- Remettre a 0 un pc - 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