IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probléme avec cin et getchar()


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 79
    Par défaut probléme avec cin et getchar()
    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
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    using namespace std;
    string crypte(string x,int plus) 
    {
    for(int i=0;i<(int)x.size();i++)
    {
    x[i]=x[i]+plus;
    }
    return(x);
    }
    string decrypte(string x,int moins) 
    {
    for(int i=0;i<(int)x.size();i++)
    {
    x[i]=x[i]-moins;
    }
    return(x);
    }
    int main()
    {
    cout << "\033[2J" << "Entrez une chaine :\n";
    string s;
    getline(cin,s);
    cout << "\nEntrez la cle de cryptage (uniquement des chiffres) : ";
    long cle;
    cin >> cle;
    cout << "Message crypte : " << crypte(s, cle) << "\nMessage decrypte : " << decrypte(crypte(s, cle), cle) << "\n";
    getchar();
    int a;
    a=0;
    cin >>a;
    return 0;
    }
    essayer d'executer ce code vous allez remarquer que a partir de getchar() le programme se termine
    j'ai pas compris pkoi?

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour

    Monsieur C vous répond: "cout>> n'habite pas ici. Allez voir chez mon voisin C++".


  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 79
    Par défaut
    oui je sais mais ca n'a rien a avoir avec l'orienté objet(c++) c'est un prog simple en c

  4. #4
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Citation Envoyé par open_source Voir le message
    oui je sais mais ca n'a rien a avoir avec l'orienté objet(c++) c'est un prog simple en c
    NON, ce n'est pas du C. Point final. Tu es en train de tout mélanger .

    string, namespace, iostream et autres joyeusetés NE FONT PAS partis du C.

    Il faut choisir soit tu programmes proprement en C ou en C++ mais il ne faut pas mélanger les serviettes avec les torchons

  5. #5
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    Donc en effet, toutes tes fonctions d'entrée / sortie (avec cout, cin) viennent du c++ *sauf* getchar() qui vient du c. Je ne sais pas si c'est la cause de l'erreur, mais ça pourrait, pour l'éviter mieux vaut rester dans la gestion type c++ (ou c) entierement (c'est pour etre "propre", limiter les causes d'erreurs possibles).

    Si ce que tu veux faire est d'attendre que l'utilisateurs appuie sur une touche avant de continuer regarde la FAQ C++ sur les entrée/sortie avec les flux. ->

    http://cpp.developpez.com/faq/cpp/?p...e#SL_cin_pause

    PS : ainsi tu pourras enlever cet "horrible" #include "stdafx.h"

    EDIT : et pour en rajouter une petite couche (c'est pas méchant hein juste pour que tu remarques)
    ca n'a rien a avoir avec l'orienté objet
    string = classe (d'où objets)
    cin = objet (plus ou moins mais plus plus que moins )
    cout = objet (idem)

Discussions similaires

  1. problème avec cin
    Par timiti29 dans le forum Débuter
    Réponses: 1
    Dernier message: 19/09/2010, 20h41
  2. Problème avec cin.getlin dans un for
    Par Carnat89 dans le forum Débuter
    Réponses: 2
    Dernier message: 02/07/2009, 21h09
  3. problème avec std::cin
    Par _LVEB_ dans le forum SL & STL
    Réponses: 4
    Dernier message: 20/02/2007, 00h35
  4. Problèmes avec cin.
    Par Kr00pS dans le forum SL & STL
    Réponses: 6
    Dernier message: 30/10/2006, 23h22
  5. Problème avec cin
    Par Azharis dans le forum SL & STL
    Réponses: 18
    Dernier message: 28/04/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo