Lire un fichier dans un string [C++] - C++ - Programmation
Marsh Posté le 06-05-2004 à 08:55:09
ben la réponse elle est claire : une string n'a pas de push_back
Marsh Posté le 06-05-2004 à 09:05:04
ben tu écris pas. tu utilises un vector/deque<char> ou tu écris toi même une sorte de back_inserter pour string
Marsh Posté le 06-05-2004 à 10:06:32
que pensez vous d'un truc comme ça?
Code :
|
Marsh Posté le 06-05-2004 à 10:18:26
c'est pas mal
string content=out.str();
mais arrêtez avec =
par contre, je planquerais le stringstream, histoire de pouvoir le purger dès que j'ai récupéré ma string
Marsh Posté le 06-05-2004 à 11:02:51
Bon j ai stocké mon fichier dans un vector<char> mais le probleme c est que j ai perdu tous les espaces et tabulations.
Z avez pas une idée pour eviter ca?
Marsh Posté le 06-05-2004 à 11:50:12
J'aurais fait ca betement :
Code :
|
Marsh Posté le 06-05-2004 à 13:03:59
Ton prog marche bien.
En ce qui me concerne, j ai besoin de lire un gros fichier et les getline prennent beacoup de temp(18 sec).
Je voudrais pouvoir le lire en quasi instantanné
Marsh Posté le 06-05-2004 à 13:57:15
xterminhate a écrit : J'aurais fait ca betement : |
ça tu peux le dire, t'es con ...
Marsh Posté le 06-05-2004 à 14:23:15
Stoluup a écrit : Ton prog marche bien. |
et le type de solution que je t'ai donné plus haut ne te convient pas?
Marsh Posté le 06-05-2004 à 14:24:18
la solution rdbuf est bonne
sinon on peut tout simplement passer par un read
Marsh Posté le 06-05-2004 à 14:28:40
hé, en fait SoWhat, je la comprennait pas bien ta solution.
Et, au risque d' énerver tout le monde, je dois avouer que je bidouille pas mal sans trop connaitre la STL.
Un programme optimal, c' est qqch de nouveau pour moi
Marsh Posté le 06-05-2004 à 15:09:53
En plus rapide...
Code :
|
Marsh Posté le 06-05-2004 à 15:12:25
Taz a écrit : ça tu peux le dire, t'es con ... |
Qu'est ce qui ne va pas ?
Marsh Posté le 06-05-2004 à 15:17:05
Bon SoWhatin22, ton prog est bien aussi.
Mais , il met quand même 16 secondes pour lire mon fichier.
Marsh Posté le 06-05-2004 à 16:22:19
En fait, je voulais lire le fichier dans un string pour pouvoir utiliser find et trouver un mot particulier.
Pour mon problème le mieux est en fait de ne pas lire le fichier dans un string:
Code :
|
Mais je suis tombé sur un nouveau problème:
Je dois recherché un mot des centaines de fois, et même avec find ça rame,... mais bon ce problème a surement sa place dans un autre topic
Marsh Posté le 06-05-2004 à 16:28:38
ReplyMarsh Posté le 06-05-2004 à 16:39:11
Oui, c'est pas terrible en effet, probablement que sans eof() ce serait mieux.
Et je ne me fous de personne, loin de moi l'idée d'être aussi impoli que toi.
Marsh Posté le 06-05-2004 à 16:44:42
ben dès fois ça à se demander ... les stream ont tout pour être utilisé facilement, avec détection d'erreur, etc, tout à a été fait pour que tu puisses écrire
while(std::getline(std::cin, line))
et toi tu mets tout en l'air avec eof que tu ne sais même pas employer correctement ...
Marsh Posté le 06-05-2004 à 16:47:34
C'est noté et j'espère réparé!
Marsh Posté le 06-05-2004 à 08:45:35
Je cherche a lire un fichier dans un std::string sous VC++ 6.
J ai alors entrez le code suivant:
Mais alors, je ne comprend pas l' erreur de compilateur:
error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' ....
Je pense avoir mis les bons include (l' erreur semble pas venir de la)
Du coup , je bloque ...