Vous n'êtes pas identifié(e).
Pages : 1
et j'ai l'erreur :
ou est-je fait une erreur, ou qu'est ce que je ne connais pas sur le cpp pour que ce code ne compile pas ?
je suis sur une haiku 64bits.
cordialement,
Aiki Zen.
Hors ligne
Il vaut mieux montrer que raconter.
Hors ligne
//: C02:GetWords.cpp
// Break a file into whitespace-separated words
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector<string> words;
ifstream in("GetWords.cpp");
string word;
while(in >> word)
words.push_back(word);
for(int i = 0; i < words.size(); i++);
cout << i << endl;
} ///:~
Remarque, tu pourrais compter le nombres de mots à l'intérieur de ta boucle
while et déclarer ta variable i avant celle-ci, comme cela :
Disons que c'est une façon de faire, l'autre c'est d'utiliser
la méthode de vector qui permet de connaître son nombre d'éléments.
Mais je ne connais pas le C++ et donc je ne sais pas si cette
façon d'utiliser <vector> est bien correct…
Dernière modification par enicar (01-04-2018 19:06:46)
Hors ligne
Hors ligne
non ça ne marche pas, j'obtient 0 quand j'essai de déclarer i à l'exterieur de for.
Montre le code exact que tu as utilisé. Là c'est impossible de se rendre compte. Mais comme je le disais
précédemment, une seule boucle suffit et on n'a même pas besoin de les compter vu qu'il existe une
méthode pour connaître le nombre d'éléments d'un « vector ».
Hors ligne
merci à captfab pour le débuggage... des espace insécable apparemment quand j'ai cc depuis le forum sur une autre machine.
captfab nous postera une solution sans variable dès qu'il pourra...
cdlt,
Aiki.
Hors ligne
De cette façon, le code fonctionnera, sauf qu'il est vraiment tordu.
Pourquoi ne pas incrémenter i dans la première boucle (while(in >> word)).
J'ai vu aussi que quelqu'un t'avait donné la solution avec words.size()
qui permet de récupérer le nombre d'éléments d'un vector… ce qui constitue
la bonne solution
EDIT: Remarque bien j'ai écrit for(i=0; i < words.size(); i++) et non
for(int i = 0; i < words.size(); i++). Dans le deuxième on déclare une variable i
locale au for et qui masque une éventuelle déclaration précédente d'une autre variable i.
Quand même c'est bête de juste incrémenter une variable en ayant comme limite la valeur de la taille du
vector (words.size()) pour juste connaître cette taille qu'on connaît déjà… mais bon ça fait parti
de l'apprentissage
Dernière modification par enicar (03-04-2018 12:40:06)
Hors ligne
On utilise juste le découpage en mot de l'opérateur d'entrée >>.
Hors ligne
En espérant que je n'ai pas commis de bévues
Hors ligne
Pages : 1