Probleme en c++ sur struct. [Résolu/Fermé]

Messages postés
9
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
14 septembre 2005
- - Dernière réponse : Ravachol
Messages postés
564
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
- 11 sept. 2005 à 14:03
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
Afficher la suite 

5 réponses

0
Merci
je sais pas si ca peut aider mais essaie de declarer comme ca : ordinateur a;
Messages postés
9
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
14 septembre 2005
0
Merci
j'ai deja essayé mais la struct refuse de ce faire si je range pas les données dans un tableau.
Messages postés
9
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
14 septembre 2005
0
Merci
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
Merci
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.
Messages postés
564
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
110
0
Merci
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++