c ++ запрос на член `A 'в` B', который имеет неклассовый тип `C ' - PullRequest
0 голосов
/ 01 октября 2011

Я получаю сообщение об ошибке 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;
}

Спасибо за любую помощь, которую вы можете оказать.

Ответы [ 3 ]

3 голосов
/ 01 октября 2011

post - это массив, поэтому для доступа к одному члену вам нужно сделать cin>>post[index].namn; вместо cin>>post.namn;

. Вы хотите получить доступ к одному элементу post в массиве и членуэтот элемент.

0 голосов
/ 01 октября 2011
cin>>post.namn;

post - это массив.Так должно быть что-то вроде этого:

cin>>post[i].namn;
0 голосов
/ 01 октября 2011

У вас есть массив telefonbok объектов, вам нужно указать, к какому из них вы хотите прочитать информацию.

Таким образом, строки должны выглядеть примерно так:

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