Probleme avec strstream

Résolu
flyfrog Messages postés 2 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 9 avril 2006 - 9 avril 2006 à 16:20
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 9 avril 2006 à 19:48
Bonjour,

J'ai le code suivant qui permet de lire les parametres d'entrée et de les restituer à l'aide dy buffer strsteam (variable line). Le programme s'arrete et se plante (...a generé une erreur et doit fermer... envoyer le rapport d'erreur/ne pas envoyer...).

#define __USE_STD_IOSTREAM

#include

#include <strstream>

int main (int argc, char* argv[])
{
std::strstream line;

// On saute le nom de la commande
argv++;
argc--;

// On installe tous les arguments dans le buffer line
while (argc > 0)
{
line << argv[0];
//std::cout << argv[0] << " " << argc << std::endl;
argv++;
argc--;
}

// On va analyser le contenu du buffer
char* value = "";
line >> value;
std::cout << "Angle=" << value << std::endl;

return (0);
}

C'est la ligne "line >> value" qui pose probleme. Sachant que j'utilise Visual C++ 6.0 sous windows xp sp2 et que je rentre les arguments du programme dans le menu "project -> settings".

Merci d'avance

3 réponses

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
9 avril 2006 à 19:48
Sinon, tu devrais plutôt éviter les strstream au profit des stringstream dans <sstream>
les strstream sont dépréciés.

// Ma participation à la saturation du net:
http://hylvenir.free.fr
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 avril 2006 à 16:34
char *value = "";

Tu veux écrire dans quoi ?
char value [64];
tu pourras écrire là ;)
if(!Meilleur("Joky")) return ERREUR;<
0
flyfrog Messages postés 2 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 9 avril 2006
9 avril 2006 à 16:51
Merci, cela resout le probleme. J'ai omis l'allocation de la memoire. C'est parce qu'avant que j'essaie avec value comme etant de type "char *", j'avais la declaration suivante : std::string value;

Et l'instruction : line >> value; retournait une erreur dans ce dernier cas. Je ne sais pas s'il faut surdefinir >> pour le type "string". Normalement non.

Si vous avez une réponse a ce probleme egalement!
0
Rejoignez-nous