Bonjour.
j'ai fait un petit programme qui est en fait un split. C'est très très basique mais c'était pour le plaisir
Voici donc le code :
Mon soucis c'est qu'à la compilation j'ai ce warning :
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 #include <iostream> #include <string> #include <fstream> #include <vector> using namespace std; int main(int argc, char *argv[]) { ifstream SOURCE("Fichier.txt", ios::in); if(!SOURCE) { cerr << "Impossible d'ouvrir le fichier !" << endl; exit(1); } string s; vector<string> mots; while(getline(SOURCE, s)) { bool done = false; while(!done) { int emplacement = s.find(" "); if(emplacement == string::npos) { done = true; } else { string mot = s.substr(0, emplacement); mots.push_back(mot); s = s.substr(emplacement+1, s.size()); } } } for(size_t i = 0; i < mots.size(); ++i) cout << mots[i] << endl; mots.clear(); (void) argc; (void) argv; return 0; }
J'aimerai bien éviter de l'avoir mais ... je ne sais pas comment modifier mon code pour le plus avoir ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 g++ -Wall -W -pedantic -ansi split.cpp -o split split.cpp: In function int main(int, char**): split.cpp:22: attention : comparaison entre des expressions entières signée et non signée
[edit] Je viens de trouver une solution mais je ne sais pas si c'est vraiment super. J'ai modifier la ligne pour avoir ceci :
Y a t il une meilleure solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(emplacement == (int) string::npos) {
Partager