Probleme en c++ sur struct.

Résolu
bonjour ,
j'ai de nouveau un soucit avec un programme que je fais en c++
le voici:
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

typedef struct {char marque[10];char model[10];int proscesseur;int ram;int dd;char ecran[10];int taille;} ordinateur;

int main()

{
ordinateur a[1];

cout<<"Quel est la marque de l'ordinateur: "<<endl;
cin>> a[1].marque;
cout<<endl<<"le model:"<<endl;
cin>>a[1].model;
cout<<endl<<"la vitesses du proscesseur:"<<endl;
cin>>a[1].proscesseur;
cout<<endl<<"quel est la taille de votre memoire vive en MO:"<<endl;
cin>>a[1].ram;
cout<<endl<<"la taille de votre disque dur en GO:"<<endl;
cin>>a[1].dd;
cout<<endl<<"la marque de votre ecran:"<<endl;
cin>>a[1].ecran;
cout<<endl<<"et ca taille en pouce:"<<endl;
cin>>a[1].taille;

return 0;
}

voila alors au debut tout va bien il me demande de saisir marque,model et vitesse du proscesseur et puis il affiche les lignes suivantes mais sans attendre que je rentre une valeur.

quelqu'un pourrais m'expliqué pourquoi, je ne comprend pas et vous pouvez voir que je suis un newbie dans le domaine.
D'avance merci
Configuration: mac mini osx tiger.

5 réponses

  1. je sais pas si ca peut aider mais essaie de declarer comme ca : ordinateur a;
    0
    1. j'ai deja essayé mais la struct refuse de ce faire si je range pas les données dans un tableau.
      0
      1. merci a toi mais je pense avoir trouvé le soucit
        si je ne rentre pas une valeur comme le programme l'attent il me fais n'importe quoi!
        genre:
        du texte a la place de valeur numerique.

        merci pour ton aide.
        0
        1. ui j'ai remarqué ca aussi vis a vis du programme mais chez moi quand je compile il ny a pas besoin du #include <cstdlib>
          et #include <cstdio>
          ,et ca marche tres bien comme ca,sauf a la fin ou ca plante mais la j'ai po trop compris pourquoi.
          0
          1. Salut,
            Pour ce qui est de la gestion des erreurs avec cin, voir ici:
            http://c.developpez.com/faq/cpp/?page=console#SL_cin_verify

            Si tu as utilisé le source fournit dans le post initial ce n'est pas étonnant que ça plante à la fin, en effet:
             ordinateur a[1];

            Déclare un tableau a de 1 élément de type ordinateur

            puis dans le reste du code on voit ceci:
             cin>> a[1].marque;

            où l'on référence le deuxième élément du tableau a qui n'en contient qu'un seul. En C/C++ l'index des éléments d'un tableau commence à 0. Donc à la fin du programme tu dois logiquement avoir une erreur segmentation fault.

            A++
            0