2011-10-01 3 views
0

Je reçois le message d'erreur request for member 'namn' in 'post', which is of non-class type 'telefonbok[10]', ou des versions similaires.Demande C++ pour le membre «A» dans «B», qui est de type «C» non-class

Je pense qu'il a à voir avec le bit de code suivant:

struct telefonbok 
    { 
     string namn; 
     string nummer;   
    }; 

int main() 
{ 
int i, ja, nej; 
telefonbok post[10]; 

Qu'est-ce que je fais mal? Les erreurs sont ciblées sur:

cin>>post.namn; 

et

cin>>post.nummer; 

Voici le code complet, désolé suédois:

#include <cstdlib> 
#include <iostream> 
#include <string> 
using namespace std; 

struct telefonbok 
    { 
     string namn; 
     string nummer;   
    }; 
int main() 
{ 

int i, ja, nej; 
telefonbok post[10]; 
bool svar; //behövs för frågan om man vill fortsätta. 

for (i=0; i<10; i++) 
{ 
     cout<<"Lagg till en post i telefonboken."<<endl; 
     cout<<"Ange personens namn"<<endl; 
     cin>>post.namn; 
     cout<<"Ange personens nummer :"<<endl; 
     cin>>post.nummer; 
     cout<<"Vill du mata in en post till? (ja/nej)"<<endl; 
     cin>>svar; 
     if (svar == nej) break; //stoppar slingan om man svarar nej 

} 

system("PAUSE"); 
return 0; 
} 

Merci pour toute aide que vous pourriez être en mesure fournir.

Répondre

3

post est un tableau, donc l'accès à un membre que vous devez faire cin>>post[index].namn; au lieu de cin>>post.namn;

Vous souhaitez accéder à un seul élément post dans le tableau, et un membre de cet élément.

+0

Merci qui a bien fonctionné! – user974524

+0

Je suis désolé si c'est une autre question stupide mais maintenant la boucle for est cassée, le "cin" est comme il n'est pas là pour quand la boucle for est exécutée la 2ème fois et 3ème et ainsi de suite ... – user974524

+0

@ user974524 pouvez-vous afficher le code modifié? –

0

Vous avez un tableau d'objets telefonbok, vous devez spécifier à laquelle vous souhaitez lire les informations.

Ainsi, les lignes doivent être quelque chose comme:

cin >> post[i].namn; //i is an index to the array; the for loop variable. 
0
cin>>post.namn; 

post est un tableau. Donc, cela devrait être quelque chose comme ceci:

cin>>post[i].namn; 
Questions connexes