Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2927 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  fflush(stdin) ne marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fflush(stdin) ne marche pas

n°349173
polo021
Posté le 01-04-2003 à 14:25:06  profilanswer
 

et oui je l'ai fait.
 
 :whistle:  
 
c'est le 1er avril aussi....
 
En fait je ne sais plus exactement comment on fait pour passer d'un char[] vers un entier

Code :
  1. int j=0;
  2. int tcp_port = 0;
  3. port [5] = "12345";
  4. while (port[j]!='\0')
  5. {
  6. tcp_port = (tcp_port * 10) + (port[j]-48);
  7. j++;
  8. }


 
y a une erreur quelque part mais je ne vois plus ou.

mood
Publicité
Posté le 01-04-2003 à 14:25:06  profilanswer
 

n°349176
kadreg
profil: Utilisateur
Posté le 01-04-2003 à 14:26:08  profilanswer
 

polo021 a écrit :


port [5] = "12345";


 
Et ton \0 final, tu le stocke ou ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°349179
polo021
Posté le 01-04-2003 à 14:27:55  profilanswer
 

ben disons port[6] = "12345\0" alors mais ca c'est juste pour vous montrer mon char mais en il y est le '\0'. Spasalproblaim

n°349208
Taz
bisounours-codeur
Posté le 01-04-2003 à 14:58:24  profilanswer
 

ou port[]
 
plus généralement, ton compilateur devrait t'avertir de ce genre de problème

n°349213
polo021
Posté le 01-04-2003 à 14:59:49  profilanswer
 

++Taz a écrit :

ou port[]
 
plus généralement, ton compilateur devrait t'avertir de ce genre de problème


 
mais est ce que tu peux m'aider a resoudre ce probleme de conversion? toi qui conseille de ne pas utiliser itoa et atoi.  :??:

Code :
  1. int j=0;
  2.   int tcp_port = 0;
  3.   port [] = "12345\0";
  4.   while (port[j]!='\0')
  5.   {
  6.      tcp_port = (tcp_port * 10) + (port[j]-48);
  7.      j++;
  8.   }


Message édité par polo021 le 01-04-2003 à 15:01:09
n°349222
Konar
Posté le 01-04-2003 à 15:07:49  profilanswer
 

vite fait (sans tester) :

Code :
  1. char str[] = "12344";
  2. int res = 0;
  3. for (int i = 0; i < strlen(str); i++)
  4. res = 10 * res + str[i] - '0';

n°349243
polo021
Posté le 01-04-2003 à 15:33:49  profilanswer
 

hum...ben...heu...
en fait apres quelques tests je viens de voir que c'est l'affichage de mon resultat qui n'allait pas mais la conversion etait parfaitement bien faite.
 
Enfin ces deux solutions  

Code :
  1. int j=0;
  2. int tcp_port = 0;
  3. port [] = "12345\0";
  4. while (port[j]!='\0')
  5. {
  6.     tcp_port = (tcp_port * 10) + (port[j]-48); // ou (port[j]-'0')  
  7.     j++;
  8. }


 
pourront certainement servir a des gens.
 
Merci quand meme pour votre aide.

n°349404
Taz
bisounours-codeur
Posté le 01-04-2003 à 17:09:12  profilanswer
 

sscanf

n°349437
western
AJMM
Posté le 01-04-2003 à 17:33:56  profilanswer
 

polo021 a écrit :


En fait je ne sais plus exactement comment on fait pour passer d'un char[] vers un entier


 

ATOI(3)                   Manuel du programmeur Linux                  ATOI(3)
 
NOM
       atoi - Conversion d'une chaîne en entier (int).
 
SYNOPSIS
       #include <stdlib.h>
 
       int atoi (const char *nptr);
 
DESCRIPTION
       La  fonction atoi() convertit le début de la chaîne pointée par nptr en
       entier de type int.  Le résultat est identique à un appel
 
              strtol(nptr, (char **)NULL, 10);
 
       à la différence que atoi() ne détecte pas d'erreur.
 
VALEUR RENVOYÉE
       Le résultat de la conversion.
 
CONFORMITÉ
       SVID 3, POSIX, BSD 4.3, ISO 9899
 
VOIR AUSSI
       atof(3), atol(3), strtod(3), strtol(3), strtoul(3)
 
TRADUCTION
       Christophe Blaess, 1997.
 
GNU                             22 Octobre 1996                        ATOI(3)

n°349441
bobuse
Posté le 01-04-2003 à 17:36:03  profilanswer
 


 

polo021 avait écrit :


 
mais est ce que tu peux m'aider a resoudre ce probleme de conversion? toi qui conseille de ne pas utiliser itoa et atoi.  
[/cpp]


 
[:grilled]


Message édité par bobuse le 01-04-2003 à 17:36:26
mood
Publicité
Posté le 01-04-2003 à 17:36:03  profilanswer
 

n°349442
Taz
bisounours-codeur
Posté le 01-04-2003 à 17:36:24  profilanswer
 

ou sscanf qui est un généraliste (histoire de pas avoir la questions ur les float dans 2 jours) :bounce:

n°349460
western
AJMM
Posté le 01-04-2003 à 17:42:56  profilanswer
 

bobuse a écrit :


mais est ce que tu peux m'aider a resoudre ce probleme de conversion? toi qui conseille de ne pas utiliser itoa et atoi.  


Ecoute alors ++Taz: sscanf est infinement plus efficace que de parcourir le tableau ...

n°349811
polo021
Posté le 02-04-2003 à 10:08:05  profilanswer
 

ok, je vais essayer
 
merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  fflush(stdin) ne marche pas

 

Sujets relatifs
[PHP] HELP je pete un cable ! select marche + ?Formater un texte en php ? RESOLU ca marche avec le \n
[PHP] include qui marche pas ?PHP + SNMP quelqu'un a deja testé? --> ca marche!
POURQUOI INCLUDE( ) AVEC UNE URL SA MARCHE PAS ??marche pas: comment appel t on une fonction php aprés onclick="
Java.lang.RunTime : marche, mais pas vraiment [résolu]fonction copy() grrrrrr pourquoi ça marche pas bon sang
Erreur en lancant phpMyAdmin CA MARCHE MERCI 
Plus de sujets relatifs à : fflush(stdin) ne marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR