C++对'B'类成员`A'的请求,它是非类类型'C'

问题描述:

我收到错误消息request for member 'namn' in 'post', which is of non-class type 'telefonbok[10]'或其类似版本。C++对'B'类成员`A'的请求,它是非类类型'C'

我认为这与下面的代码位做:

struct telefonbok 
    { 
     string namn; 
     string nummer;   
    }; 

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

我在做什么错? 的错误定位于:

cin>>post.namn; 

cin>>post.nummer; 

下面是完整的代码,对瑞典的遗憾:

#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; 
} 

谢谢你的任何帮助,您可以提供。

post是一个数组,所以访问一个成员,你需要做的cin>>post[index].namn;代替cin>>post.namn;

要在阵列中访问单个post元素,该元素的成员。

+0

谢谢你,工作很棒! – user974524

+0

对不起,如果这是另一个愚蠢的问题,但现在for循环被破坏,“cin”就像它不存在for循环运行时第二次和第三次,等等... – user974524

+0

@ user974524你能显示修改后的代码吗? –

您有一个telefonbok对象的数组,您需要指定要读取哪些信息。

所以行应阅读类似:

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

cin>>post.namn; 

post是一个数组。所以这应该是这样的:

cin>>post[i].namn;