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

Posted

技术标签:

【中文标题】c ++请求\'B\'中的成员\'A\',它是非类类型\'C\'【英文标题】:c++ request for member `A' in `B', which is of non-class type `C'c ++请求'B'中的成员'A',它是非类类型'C' 【发布时间】:2011-10-01 14:30:07 【问题描述】:

我收到错误消息request for member 'namn' in 'post', which is of non-class type 'telefonbok[10]',或类似版本。

我认为这与以下代码有关:

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;

感谢您提供的任何帮助。

【问题讨论】:

【参考方案1】:

post 是一个数组,因此访问一个成员需要cin&gt;&gt;post[index].namn; 而不是cin&gt;&gt;post.namn;

您想访问数组中的单个 post 元素,以及该元素的成员。

【讨论】:

对不起,如果这是另一个愚蠢的问题,但现在 for 循环被破坏了,“cin”就像在第二次和第三次运行 for 循环时不存在等等…… cin>>post[i].nummer; --- 相同:cin>>post[i].namn;【参考方案2】:
cin>>post.namn;

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

cin>>post[i].namn;

【讨论】:

【参考方案3】:

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

所以这些行应该是这样的:

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

【讨论】:

以上是关于c ++请求'B'中的成员'A',它是非类类型'C'的主要内容,如果未能解决你的问题,请参考以下文章

请求“m”中的成员“find”,它是非类类型“int”

错误:在“”中请求成员“大小”,它是非类类型“int *”

错误:在“ofEvents”中请求成员“更新”,它是非类类型“ofCoreEvents&()”|

ajax返回一个Map类型数据'a':'1','b':'2','c':'3'怎么取值?

C#知识点-枚举器和迭代器

Node.js 中的同步 HTTP 请求