Re: [systeme C] gestion du terminal
Citation:
Envoyé par gene69
ni fgets (bogge rapporté sur les pages de man)
Pardon ?
Tu confonds avec gets.
La fonction fgets est tout à fait sécurisée. Rien ne t'empêche de l'utiliser...
Re: [systeme C] gestion du terminal
Citation:
Envoyé par gene69
Bonjour
Je voudrais savoir ou j'ai faux.
Je voudrai lire le terminal, mais comme j'utilise des socket avec des write et des read je ne peux pas utiliser ni scanf() ni fgets (bogge rapporté sur les pages de man)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
int i,r;
char msg;
for(;;)
{
r=read(stdin, &msg,1) ;
if (r == 1)
{
if (('0' <= msg)&&(msg <= '9'))
{
i = i*10+(int)( msg - '0');
}
else if ((msg == '\n')||(msg == ' '))
{
printf("fin saisie port\n");
break;
}
else
{
i = 0;
}
}
} |
ça ne marche pas pour une raison que je ne comprend pas, et j'ai pas d'idée plus simple pour transformer des caractères tapés au clavier en entier. Plus précisement j'ai l'impression qu'on ne va jamais dans la condition (r==1).
Merci
Read renvoi le nombre de caractère lu et il me semble qu'elle renvoi un entier que toi tu stocks dans un char donc au mieux si tu lis un caractère r ne sera pas égal à 1 mais à la valeur ascii de 1 ( enfin je pense)