【问题标题】: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;
}

感谢您提供的任何帮助。

【问题讨论】:

    标签: c++ dev-c++


    【解决方案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.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        相关资源
        最近更新 更多