DEVCPP help !!!

Signaler
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006
-
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006
-
Bonjour à tous,

mon problème est très simple,
je n'arrive pas à déclarer de chaine de caractères sous devcpp (version 4.9.9.2).
Pourtant, j'include bien string.h

Si un utilisateur de devcpp pouvait m'aider en me disant éventuellement comment configurer l'éditeur de lien du compilateur ou un truc ds le genre pour que ça fonctionne.

S'il vous plait aidez moi, ça me tue de pas pouvoir déclarer une simple string !!!

Merci mille fois à celui qui m'aidera
@++

16 réponses

Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

Pardon, j'oubliais, il fait une erreur en me disant

"string" undeclared (first use in this function)

voilà, merci bcp bcp bcp d'avance
Messages postés
99
Date d'inscription
vendredi 24 juin 2005
Statut
Membre
Dernière intervention
17 septembre 2005

bonjour,

met le debut de ton code stp.

Parce que le message d'erreur que tu as ne dit pas qu'il y a un prob avec string.h mais avec la declaration.
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

#include <string.h>

int main()
{
string s;
return 0;
}

Voilà, rien que ce code ci ne compile pas chez moi.
J'ai aussi essayé avec include <string>, <strings>, "string.h", "strings.h"
mais rien ne marche.

merci bcp de m'aider
Messages postés
89
Date d'inscription
mardi 8 février 2005
Statut
Membre
Dernière intervention
14 novembre 2007

euh ça existe le type string en c++



moi pour faire une chaîne de charactère je fais comme ceci :



char nomdevariable[]="Voici une chaîne de caractère"; // Crée une chaîne

printf("Affichage nomdevariable = %s\n", nomdevariable); // Affichage
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

Oui, je suis certain que ça existe.
J'ai déjà réalisé un projet c++ avec des strings mais c t sous Visual.
Là, j'ai pas la licence Micrososft donc je voudrais utiliser dev
mais il doit être mal configuré.

C le deuxième projet q je réalise avec en fait
et la première fois, j'ai effectivement utilisé des char* et des tab de char.
Mais je trouve ça bcp plus chiant.

Donc si les string existent bien, pourquoi ne pourrait on pas les utiliser ?

Merci
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
94
et avec std::string, ça ne marche pas mieux?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

ah un bug...
Pardon
je disais que ça ne marche pas non plus.
Et d'ailleurs qd je fais un using namespace std en début, il me dit syntax error before namespace ...

merci
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

Si un utilisateur de dev qui arrive à déclarer un string pouvait
me dire les options et la configuration de son compilateur
et me joindre un petit main ou la déclaration devrait marcher,

je lui en serait infiniment reconnaissant.

Merci d'avance
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Pour utiliser std::string il faut utiliser la STL =>essaie comme ça :



#include <string>



int main()

{

std::string s;

....

return 0;

}



ou

#include <string>

using namespace std;

int main()

{

string s;

...

return 0;

}



Voilà, ça devrait aller...
Messages postés
2
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
22 juillet 2005

Cas Classique...
Il ne faut pas oublier que la classe string fait partie de l'espace de nom standard..
donc ou choix nous avons donc 2 possibilités :

//Premiere possibilité avec l'espace de nom standard
#include <cstdlib>
#include
#include <string>

using namespace std; //obligatoire pour le cout, cin, et STRING


int main(int argc, char *argv[])
{
string unNom;
cout << "Veuillez saisir votre nom : " ;
cin >> unNom; //C'est à titre d'exemple, à amelioré a cause des fux qui
// sont tamponés
cout << "Bonjour " << unNom << endl;;
system("PAUSE");

return EXIT_SUCCESS;
}

//Deuxieme possibilité sans l'espace de nom standard
//Je conseille vivement d'utiliser cette forme bien quelle soit plus lourde à
//écrire dans tous vos .h, et celà assure une meilleure portabilité de vos sourcez
#include <cstdlib>
#include
#include <string>

int main(int argc, char *argv[])
{
std::string unNom;
std::cout << "Veuillez saisir votre nom : " ;
std::cin >> unNom;
std::cout << "Bonjour " << unNom << std::endl;
system("PAUSE");
return EXIT_SUCCESS;
}

A noter
Ces 2 codes ont été compilé avec succès sur DEVC++ 4.9.9.2
A bon entendeur SALUT
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Petite précision :



#include <string.h> : tu utilises la bibliothèque standard C

#include <string> : tu utilise la STL, spécifique au C++



des headers de C sont passer dans la STL autrement :

#include <math.h> devient #include <cmath>, le 'c'
indiquant que le nouveau fichier (C++) gère les mêmes fonctions que la
version C
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

Merci milles fois pour vos réponses.

En couleur en plus, merci wasalt , des précisions en plus, merci simetiers.
(Merci à tt les autres qui se sont donnés la peine aussi).
C bon de se sentir (un peu) moins con.

J'essaye ça de suite.

@++
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

En fait, j'ai un problème.

Qd je crée un ptit main à part et que j'y mets le code, il marche parfaitement, y a aucun soucis, ça compile, ça s'exécute...

Mais en fait j'ai crée un projet dans lequel j'utilise GTK et ça ne compile pas...

Donc ma situation :
- je laisse les options générales du compilo telles qu'elles étaient pr compiler le main de test q fonctionne.

- pour mon projet, j'ai ça ds les options :
Parameters : C++ compiler : -mms-bitfields -mwindows -DHAVE_CONFIG_H
linker : -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

(je génère l'interface à l'aide de GLADE nvelle version).

- Ds directories, j'ai que dalle...

A ce niveau là, si j'essaie de compiler, il y a une erreur :
config.h:no such file or directory
config.h étant un header du projet qui est bien ajouté au projet (fenêtre de gauche, project).

Maintenant, si ds les options projet, ds directories,
ds l'onglet "Include Directories", je rajoute je répertoire devcpp généré par glade, ds lequel se trouve le projet .dev,

alors ça compile et il voit bien le config.h et les autres fichiers mais à ce moment là, je ne peux plus déclarer de string !!

Il y a l'erreur: cstdlib:no such file or directory, m chose pr iostream et string

Si vous pouviez encore m'aider à surmonter ce pb svp.

Je sens q je suis tt près et c un vrai casse tête chinois ce truc.
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

Si qq peut m'aider svp...

Si j'essaie la version: using namespace std;

La compil réussit presque j'ai l'impression, mais juste à la génération de l'exe, il me fait l'erreur :

undefined reference to 'std::string::size()'

C'est qd même la misère ...
Please help !
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

heu, non en fait j'ai rien dit, le "using namespace std" ça n'a rien à voir, j'ai tellement trituré le code ds tous les sens que je sais plus ce q j'ai changé...

Ca marche tjs pas mais avec ou sans l'espace de noms standard,
ça me fait tjs la même erreur au linkage :

[linker error] undefined reference to 'std::string::size()'
Messages postés
34
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
6 juin 2006

C bon !!! j'ai résolu le prob !!!


Alors pr tous ceux qui aurait le même prob q moi, faut aller ds
Options du projet -> Parameters/linker
et là, ajouter les 2 bibliothèques c++ :

Dev-Cpp/lib/libstdc++.a
Dev-Cpp/lib/libsupc++.a