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
    Membre habitu�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    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 Expert

    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
    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
    Membre habitu�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    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