Récupérer un nombre dans un char en c

Fermé
KOH - 29 nov. 2008 à 15:29
cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 - 20 janv. 2009 à 13:08
Bonjour,
je suis en train de créer un client/serveur en c sous windows xp et je voudrais que le client entre de numéro de port dans argv[].
g reussi a recuperer l'ip mais le port sa marche pas.
voila un le bout de code coserné:

//*********************************************************
int main(int argc, char **argv)
{
const char *ip;
int i;
int port;

for(i = 0; i < argc; i++)
{

if(strcmp(argv[i],"-ip")==0)
{

ip = argv[i + 1];

}

if(strcmp(argv[i],"-port")==0)
{

port = argv[i + 1];

}
}
}

//*************************************************

je c'est que c'est normale que sa marche pas mais auriez vous une idée pour convertire un char en int.
exmple :
char *port_char;
int port_int = port_char;

merci davance pour vos reponce a ++.

6 réponses

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
29 nov. 2008 à 15:37
Si la chaîne de caractère ne contient qu'un seul nombre, tu peux utiliser la fonction :
int atoi(char *str);
0
la chaine de caractere contien plusieur caracter comme le port 5005 par exemple.
0
cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 17
20 janv. 2009 à 12:05
bonjour !
je me permets de upper le sujet =P j'ai exactement le même problème :

récupérer un int à partir d'un ddes arguments du main. doonc si quelqu'un a la réponse, c'est bienvenu :)
merci
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
20 janv. 2009 à 12:38
La réponse a été donnée dans ma première réponse ... Si t'appelles ton programme : MonProg.exe 1234 4567
Pour récupérer 1234 et 4567 tu peux faire atoi() sur tes arguments 1 et 2 (parce que le 0 est le nom du programme).
0
samsouma04 Messages postés 60 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 17 mai 2009 1
20 janv. 2009 à 12:54
tu peus utiliser la fonction Format ca pourrait convertir int en CString
exemple
CString S;
int *u;
u=NULL;
S.Format(_T("%d"),u);
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
20 janv. 2009 à 13:01
Peut-être que ton truc fonctionne mais n'est pas du langage C..
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
20 janv. 2009 à 13:00
Salut,
Oui mais ça ne fait pas partie du C ;).
En C, tu peux utiliser atoi, ou strtol de stdlib.h
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
samsouma04 Messages postés 60 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 17 mai 2009 1
20 janv. 2009 à 13:07
mais si ca fais partie du C et je viens de lutiliser avc ;-)))visual Studio C++ (MFC)
g travailler ce sujet ds un de mes petits projet si tu ve tu mdonne ton email jtenvoie le code ca pourra surement taider
0
cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 17
20 janv. 2009 à 13:08
merci pour vos réponses. effectivement, l'a réponse avait été donné, j'avais mal lu ce que répondais koh à ton 1er message et pensais qu'il disait que ça ne fonctionnait pas. merci encore.

cyclop
0