IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probleme avec mes string


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut probleme avec mes string
    Bonjour j'ai un petit probleme avec mes string sous linux,

    la compilation se passe tres bien sans erreur , mais par contre lorsque vient le temps d'executer le code suivant, chaque valeur de mes string change pour la derniere valeur assigner, mais ce n'est meme pas les meme string voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    string DBHost, DBName, DBUser, DBPass, DBType = "mysql";
    int ParseDBAddr(const char *addr)
    {
    	int len = strlen(addr) + 1;
     
    	char *specific = new char[len] ;
    	char *hostinfo = new char[len];
    	char *hostname = new char[len];
    	char *auth = new char[len];
    	char *dbtype = new char[len];
    	char *dbname = new char[len];
    	char *dbhost = new char[len];
    	char *dbuser = new char[len];
    	char *dbpass = new char[len];
     
    	dbtype[0]=0;
    	auth[0] = 0;
    	specific[0]=0;
    	hostinfo[0]=0;
    	hostname[0]=0;
    	dbname[0]=0;
    	dbuser[0]=0;
    	dbpass[0]=0;
    	dbhost[0]=0;
     
    	if(sscanf(addr,"%[^:]:%s", dbtype , specific) == 2)
    	{
    		switch (sscanf(specific, "//%[^/]/%s", hostinfo, dbname))
    		{
    			case 1: break;
    			case 2:
    				char *ch;
    				if ((ch = strrchr(dbname, '/')))
    					*ch = '\0';
    					break;
    			default: return 1;
    		}
     
    		switch (sscanf(hostinfo, "%[^@]@%s", auth, hostname))
    		{
    			case 1:
    				strcpy(hostname, auth);
    				break;
    			case 2:
    				sscanf(auth, "%[^:]:%s", dbuser, dbpass);
    				break;
    			default: break;
    		}
     
    		sscanf(hostname, "%[^:]:%d", dbhost, &DBPort);
    	}
    	if(dbtype[0])
    		DBType = dbtype;
    	if(dbname[0])
    		DBName = dbname;
    	if(dbuser[0])
    		DBUser = dbuser;
    	if(dbpass[0])
    		DBPass = dbpass;
    	if(dbhost[0])
    		DBHost = dbhost;
     
    	delete dbname;
    	delete dbhost;
    	delete dbuser;
    	delete dbpass;
    	delete dbtype;
    	delete auth;
    	delete specific;
    	delete hostinfo;
    	delete hostname;
     
    	return 0;
    }
    a la fin TOUTES mes valeur sont egal a la valeur DBHost, ce qui n'est pas logique en soit

    ce code compiler et fonctionnais tres bien sous gcc 3.2 mais lorsque j'ai voulue adapter a gcc 4.X c'est la que les problemes ont commencer

    merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Tu devrais utiliser des std::string partout et éviter de mélanger du C et du C++...
    Sinon quand on alloue un tableau avec new[] il faut utiliser le delete correspondant, soit :
    Mais bon tu n'as sans doute pas besoin d'allouer quoique ce soit si tu utilises des std::string.

    A part ça je ne peux pas vraiment t'aider mes années de C sont bien loin derrière moi...

    MAT.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci , j'ai fait les petite corrections, mais ca regle pas mon probleme , toutes mes variable SER*, prenne la valeur de SERHost, a la fin de la procedure, a partir de la, je ne peut plus me connecter sur ma base SQL.....

Discussions similaires

  1. Probleme avec mes formulaire html dans mes pages web
    Par foungnigue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2005, 19h07
  2. probleme avec les string sur ITA2 64 bits!
    Par vince3320 dans le forum SL & STL
    Réponses: 5
    Dernier message: 22/08/2005, 19h59
  3. Lecture de fichier : Probleme avec les string
    Par soda_o_rat dans le forum SL & STL
    Réponses: 10
    Dernier message: 11/08/2005, 22h59
  4. Problème avec mes emails sous postfix
    Par barbot dans le forum Réseau
    Réponses: 4
    Dernier message: 23/06/2004, 14h56
  5. [tomcat]j'ai un probleme avec mes URLs
    Par nouaman dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 27/05/2004, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo