Getline problem

I'm having problems with the getline it keeps telling me it doesn't match the argument list, Ive tried changing it to cin.getline and it puts the error under the . and just using cin. I'm lost and would appreciate help, the specific line im have trouble with is line 51 getline(cin, Animals[i].d);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream> // provides access to cin and cout
#include <array> // provides access to std:array
#include <string> // required for getline
//--end of #include files-----------
//----------------------------------

using namespace std;
//----------------------------------

//**begin global constants**********
const int arraySize = 4; // **there is a subtle bug here (needs "const")
enum MyEnum // Needs to be before the struct that uses it
{
	Dog, Cat, Fish, Squirrel
};

struct MyStruct
{
	int a;
	float b;
	string c;
	MyEnum d;
};

//--end of global constants---------
//----------------------------------


//**begin main program**************
int main()
{
	// Initialization
	char myCString[arraySize] = {0};
	char myOtherCString[] = {"Yet another string"};
	int myInt[4] = {27, 39, 0, 42};
	string myString;
	MyStruct aStruct = { 4,3.5,"Dog" , Dog};
	int x;
	int * pX = &x;
	array <MyStruct, arraySize> Animals;
	// Storing values in uninitialized variables
	char myCString[2] = "A";
	myString = "A third string";
	x = 4;
	for (int i = 0; i<arraySize; i++)
	{
		Animals[i].a = rand()%10;
		Animals[i].b = rand()%100/100.0;
		Animals[i].c = MyEnum(rand()%4);
		cout << "Enter a name: ";
		getline(cin, Animals[i].d);
	}
	// Display the data
	std::cout << "myCString = " << myCString << endl;
	cout << "myOtherCString = " << myOtherCString << endl;
	for (int i = 0; i < 4; i++)
	{
		cout << "myInt[" << i << "] = " << myInt[i] << endl;
	}
	cout << "aStruct data: a = " << aStruct.a << " b = " << aStruct.b << "  c = " << aStruct.c << " d = " << aStruct.d << endl;
	cout << "x = " << x << endl;
	cout << "value pointed to by pX = " << *pX << endl;
	for (int i = 0; i< arraySize;i++)
	{
		cout << "Animals[" << i << "].a = " << Animals[i].a << endl;
		cout << "Animals[" << i << "].b = " << Animals[i].b << endl;
		cout << "Animals[" << i << "].c = " << Animals[i].c << endl;
		cout << "Animals[" << i << "].d = " << Animals[i].d << endl;
	}
	// Wait for user input to close program when debugging.
	cin.get();
	return 0;
}
Last edited on
Animals[i].d is a variable of type MyEnum.

MyStruct.c is a string.


Perhaps you meant to put:
 
    getline(cin, Animals[i].c);
Topic archived. No new replies allowed.