DEVCPP help !!!

UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006 - 22 juil. 2005 à 11:00
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006 - 25 juil. 2005 à 12:18
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

UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juil. 2005 à 11:01
Pardon, j'oubliais, il fait une erreur en me disant

"string" undeclared (first use in this function)

voilà, merci bcp bcp bcp d'avance
0
whikie Messages postés 99 Date d'inscription vendredi 24 juin 2005 Statut Membre Dernière intervention 17 septembre 2005
22 juil. 2005 à 11:12
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.
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juil. 2005 à 11:42
#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
0
Alcantornet Messages postés 89 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 14 novembre 2007
22 juil. 2005 à 11:44
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
0

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

Posez votre question
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juil. 2005 à 11:49
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
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
22 juil. 2005 à 11:51
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...
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juil. 2005 à 12:03
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
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juil. 2005 à 12:11
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
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
22 juil. 2005 à 12:30
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...
0
wasalt Messages postés 2 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 22 juillet 2005
22 juil. 2005 à 12:31
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
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
22 juil. 2005 à 12:32
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
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
25 juil. 2005 à 08:39
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.

@++
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
25 juil. 2005 à 09:26
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.
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
25 juil. 2005 à 10:43
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 !
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
25 juil. 2005 à 10:51
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()'
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
25 juil. 2005 à 12:18
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
0
Rejoignez-nous