C++ pointeur char ,cin et cout

bonjour je suis en train d'apprendre le c++ mais je me retrouve face à un petit probleme et je souhaiterai un petit peu d'aide merci:
voila mon programme:

#include <cstdlib>
#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{

char *bob;
cin>>bob;

system("PAUSE");
return EXIT_SUCCESS;
}

en fait lorsque j'utilise scanf a la place de cin tout fonctionne correctement mais ici le programme plante quand j'utilise cin..Pouvez vous me renseigner sur l'origine de ce probleme..merci
Configuration: Windows XP
Firefox 2.0.0.3

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. c est du c ou du c++
    car si c'est du c++
    il faut pas
    #include <stdio.h> 
    1. Salut, c'est peut etre dû à ta déclaration de bibliothèque.
      "scanf" appartient bien à stdio.h et cin je crois que bien que c 'est iostream.h. Tu as mal déclaré cette dernière ->tu as oublié le ".h" à la fin de #include <iostream..>!
      1. merci de ta reponse deja..
        mais j'ai essayé ce que tu m'as dit mais ça ne change rien.
        1. Salut,

          Tu peux bien déclarer iostream sans mettre le .h à la fin
          #include <iostream>

          Sinon peut-être que le problème se situe dans le fait que tu n'initialises pas ton
          char * bob;

          Fais un new sur bob ou donne lui une taille fixe.
          1. j'ai allouée de la memoire a un objet de type char et la sa fonctionne.Cependant je ne comprend pas pourquoi avec scanf ma premiere declaration fonctionne alors que avec cin je dois allouer l'espace mémoire.
            1. essaye en déclarant ta variable bob comme un string
              1. Bonjour,

                Dans le cas d'un fichier qui est inclus avec son emplacement exacte il faut mettre "". Autrement dit, si le fichier doit être trouvé à partir d'une variable d'environnement ou d'un paramètre du compilateur c'est entre chevrons.

                M.
                1. c pas #include<stdio.h> mais #include "stdio.h"

                  salut!!
                  1. tout dépend de où se trouve stdio.h

                    si tu veux préciser son emplacement il faut utiliser les " ", donc d'apres ce que tu di, stdio.h serait dans le même répertoire que le programme

                    si c'est une libraire commune à tout les programmes (comme string, iostream etc) alors il faut utiliser les < >
                  2. @Utilisateur anonymeapres avoir inclut iostream tu dois meme using namespace std;
                    #include<iostream>
                    using namespace std;