begin process at 2012 05 29 13:05:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

myvar = new string


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

myvar = new string

mercredi 2 avril 2003 à 23:00:26 | myvar = new string

Tyroflan

typedef char string[100];
string *ligne;



...

main()
{
ligne = new string [2] // je crée donc 2 string, només ligne[0], ligne[1]
...

plus tard, il me faut un troisième ligne (ligne[2]), pour cela, je dois écrire :
ligne = new string [1] (car je souhaite crée UN nouvel élément)

ou bien

ligne = new string [3] car je rajoute un élément qui sera la 3ème position ?

il me semble plus logique de tapper ligne = new string [1] mais ca a l'air de faire quelques soucis.
si qqn pouvait m'éclairer, ca serait trankilou :)

merci d'avance,
Xavier
}
mercredi 2 avril 2003 à 23:12:01 | Re : myvar = new string

BruNews

Administrateur CodeS-SourceS
tu voudrais faire pointer *ligne a une autre adresse + tard ?
nenni, ce sera la cata. Si tu dois allouer au cours du prog fais une liste chainee de pointeurs *ligne mais tu ne vas pas reallouer sur le meme sinon tu ne pourras pas desallouer correctement.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> typedef char string[100];
> string *ligne;
>
>
>
> ...
>
> main()
> {
> ligne = new string [2] // je crée donc 2 string, només ligne[0], ligne[1]
> ...
>
> plus tard, il me faut un troisième ligne (ligne[2]), pour cela, je dois écrire :
> ligne = new string [1] (car je souhaite crée UN nouvel élément)
>
> ou bien
>
> ligne = new string [3] car je rajoute un élément qui sera la 3ème position ?
>
> il me semble plus logique de tapper ligne = new string [1] mais ca a l'air de faire quelques soucis.
> si qqn pouvait m'éclairer, ca serait trankilou :)
>
> merci d'avance,
> Xavier
> }
mercredi 2 avril 2003 à 23:36:06 | Re : myvar = new string

Tyroflan

int maxlignes=0;

void open_file()
{
char buffer[100];
ifstream monfichierdepute ("bazar.txt");
if (! monfichierdepute.is_open())
{
cout << "Y a pas eu moyen d'ouvrir l'enroule";
exit (1);
}
while (! monfichierdepute.eof())
{
ligne = new string [(maxlignes+1)];
monfichierdepute.getline(buffer,100);
ligne[(maxlignes++)]=buffer;
cout << "maxlignes: " << (maxlignes-1) << " * " << ligne[(maxlignes-1)]<< "* buffer : " << buffer<< endl;
}
}


voila le morceau de code en fait, je dois mettre chaque ligne de mon fichier ds un string, seulement je ne sais pas cmb de lignes j'ai, c'est la raison pour laquelle je souhaite crée un nouveau string ligne à chaque passage, sinon au pire, j'ai qu'à passer une fois pour compter le nb de lignes, crée tous mes strings et refaire un deuxièume passage pour les remplir, ct juste pour savoir si c'est possible de les créer au fur et à mesure, (juste pour économiser un passage quoi...)



-------------------------------
Réponse au message :
-------------------------------

> tu voudrais faire pointer *ligne a une autre adresse + tard ?
> nenni, ce sera la cata. Si tu dois allouer au cours du prog fais une liste chainee de pointeurs *ligne mais tu ne vas pas reallouer sur le meme sinon tu ne pourras pas desallouer correctement.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > typedef char string[100];
> > string *ligne;
> >
> >
> >
> > ...
> >
> > main()
> > {
> > ligne = new string [2] // je crée donc 2 string, només ligne[0], ligne[1]
> > ...
> >
> > plus tard, il me faut un troisième ligne (ligne[2]), pour cela, je dois écrire :
> > ligne = new string [1] (car je souhaite crée UN nouvel élément)
> >
> > ou bien
> >
> > ligne = new string [3] car je rajoute un élément qui sera la 3ème position ?
> >
> > il me semble plus logique de tapper ligne = new string [1] mais ca a l'air de faire quelques soucis.
> > si qqn pouvait m'éclairer, ca serait trankilou :)
> >
> > merci d'avance,
> > Xavier
> > }
>
mercredi 2 avril 2003 à 23:54:14 | Re : myvar = new string

Kaid


Pourquoi ne pas utiliser un containeur vector ou list proposé par la STL ?

#include <string>
#include <vector>

using namespace std;

// Déclaration d'un vecteur contenant des pointeurs vers des objets string
vector<string *> m_vecStr;

char buffer[100];
ifstream monfichierdepute ("bazar.txt");
if (! monfichierdepute.is_open())
{
cout << "Y a pas eu moyen d'ouvrir l'enroule";
exit (1);
}
while (! monfichierdepute.eof())
{
monfichierdepute.getline(buffer,100);

m_vecStr.push_back(new string(buffer));

}

Consultes une documentation de la STL ou la MSDN pour connaitre les méthodes implantées dans l'objet vector.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> int maxlignes=0;
>
> void open_file()
> {
> char buffer[100];
> ifstream monfichierdepute ("bazar.txt");
> if (! monfichierdepute.is_open())
> {
> cout << "Y a pas eu moyen d'ouvrir l'enroule";
> exit (1);
> }
> while (! monfichierdepute.eof())
> {
> ligne = new string [(maxlignes+1)];
> monfichierdepute.getline(buffer,100);
> ligne[(maxlignes++)]=buffer;
> cout << "maxlignes: " << (maxlignes-1) << " * " << ligne[(maxlignes-1)]<< "* buffer : " << buffer<< endl;
> }
> }
>
>
> voila le morceau de code en fait, je dois mettre chaque ligne de mon fichier ds un string, seulement je ne sais pas cmb de lignes j'ai, c'est la raison pour laquelle je souhaite crée un nouveau string ligne à chaque passage, sinon au pire, j'ai qu'à passer une fois pour compter le nb de lignes, crée tous mes strings et refaire un deuxièume passage pour les remplir, ct juste pour savoir si c'est possible de les créer au fur et à mesure, (juste pour économiser un passage quoi...)
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > tu voudrais faire pointer *ligne a une autre adresse + tard ?
> > nenni, ce sera la cata. Si tu dois allouer au cours du prog fais une liste chainee de pointeurs *ligne mais tu ne vas pas reallouer sur le meme sinon tu ne pourras pas desallouer correctement.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > typedef char string[100];
> > > string *ligne;
> > >
> > >
> > >
> > > ...
> > >
> > > main()
> > > {
> > > ligne = new string [2] // je crée donc 2 string, només ligne[0], ligne[1]
> > > ...
> > >
> > > plus tard, il me faut un troisième ligne (ligne[2]), pour cela, je dois écrire :
> > > ligne = new string [1] (car je souhaite crée UN nouvel élément)
> > >
> > > ou bien
> > >
> > > ligne = new string [3] car je rajoute un élément qui sera la 3ème position ?
> > >
> > > il me semble plus logique de tapper ligne = new string [1] mais ca a l'air de faire quelques soucis.
> > > si qqn pouvait m'éclairer, ca serait trankilou :)
> > >
> > > merci d'avance,
> > > Xavier
> > > }
> >
>


Cette discussion est classée dans : ligne, élément, string, crée, myvar


Répondre à ce message

Sujets en rapport avec ce message

Probleme String -> double et long [ par lebalrog ] Salut tout le monde!J'ai un prob urgent a resoudre (tres urgent meme)!je fais :ficin >> ligne;long r=atol(ligne);double a=atof(ligne);avec ligne="0,12 convertir une string en float [ par jean_vandevere ] Bonjour à tous, je cherche à convertir une valeur de format string en un float en dev C++.Le code que je tape est le suivant et consite à aller lire Passer à la ligne dans un string [ par Saris ] Bonjour à tous, je voudrais savoir comment mettre dans un string un caractère qui fait passer à la ligne.string s;s = "Bonjour" + ... + "Aurevoir";cou Vector affichage [ par heleos ] Slt tout le monde, voila j ai un probleme avec ceci : int main() {    std::vector x(1);          int choix;       disMen les class [ par snpier wolf ] bonjour voila j'ais commancer un peux a programmé avec les class.et j'ais un problème que je n'arrive pas à résoudre.voila le bou de codeclass command Noob et C/C++ [ par thedarkkillerz ] Bonjour, je suis habitué au C#  et au confort de Visual Studio et je voudrait passer au C/C++, j'ai donc suivit pas mal de cours sur le net mais il y Problème création handle [ par nicolasmaicheul ] Bonjour,Cette simple ligne :string^ s = gcnew string("test");provoques ces ereurs à la compilation (visual c++ express) :error C3193: '^'*: requiert l Conversion int en string [ par EagleEye ] Bonsoir ! J'ai un pti soucis en fait il m'est impossible d'effectuer cette instruction car nbLigne est un int. itoa existe mais il ya plus simple nan c++ urgence svp [ par yanlou ] maximus salut,j'ai u fichier txt qui contient des chaine de caracté, exemple :RFRPAD7RFRPAD8/A8 HELP - - getline string char conversion de types?? [ par gregroar ] //je teste dans une console la fonction getline, que je trouve suffisament rapide. //cependant je me retrouve confronté à des problemes de conversion


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales