Probleme en c++ sur struct.

Résolu/Fermé
yoshis94 Messages postés 9 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 14 septembre 2005 - 10 sept. 2005 à 11:12
Ravachol Messages postés 566 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

5 réponses

je sais pas si ca peut aider mais essaie de declarer comme ca : ordinateur a;
0
yoshis94 Messages postés 9 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 14 septembre 2005
10 sept. 2005 à 19:36
j'ai deja essayé mais la struct refuse de ce faire si je range pas les données dans un tableau.
0
yoshis94 Messages postés 9 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 14 septembre 2005
11 sept. 2005 à 11:38
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
11 sept. 2005 à 14:03
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