Infinite loop

Hi;
I have a loop that keeps going. I have a couple functions in this program that exit the function when the user enters 'R'. I have this exit function bit of code in another which doesn't give an issue. This is why I'm needing eye's to see what I miss.



Here is the function

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//Option U Function
progress optionU( infoType tele[], int&size )
{	
	//Variables
	int index = 0;
	string lname = "";
	string newLname = "";
	string newFname = "";
	string newAdd = "";
	string newCSZ = "";
	string newPhone = "";
	int choice = 0;
	char choice2 = ' ';
	char iterate = ' ';
	bool found = false;
	
 while(iterate)
 {
	//Option U function message
	cout << "----You have selected option U.----" << endl;
	
	// To get record.
	cout << "Please enter the last name of record to be updated." << endl;
	
	//Get last name
	cin >> lname;
	
	//Convert first letter to upper
	lname[0] = toupper(lname[0]);
	
	//Find record
	while( index < size && !found )
	{
	  if(tele[index].lname.compare(lname)== 0)
	  {
		cout << endl;
		cout << "The entry to be updated is " << endl;
		cout << tele[index].lname << endl;
		cout << tele[index].fname << endl;
		cout << tele[index].streetAdd << endl;
		cout << tele[index].cityStateZ << endl;
		cout << tele[index].phone << endl;
		cout << endl;
		    found = true;
	  }
		else if(!found)
		index++;
	}
	
	// If Entry is not located
	if(index == size)
		{
			cout << "Cannot Locate entry." << endl;
			cout << "Returning to menu." << endl;
			return MENU;
		}
	
	//User prompt
	cout << "Please select from one of the following" << endl;
	cout << "1. Update last name." << endl;
	cout << "2. Update first name." << endl;
	cout << "3. Update street Address." << endl;
	cout << "4. Update city, state, and zip code." << endl;
	cout << "5. Update phone number." << endl;

	// To get selection	
	cout << endl;
	cout << "Enter choice" << endl;
	cin >> choice;
	switch(choice)
	{
	case 1: cout << "Please type the new last name. " << endl;
		cin.get();
		getline(cin,newLname);
		newLname[0] = toupper(newLname[0]);
		tele[index].lname = newLname;
		break;
	case 2: cout << "Please type the new first name. " << endl;
		cin.get();
		getline(cin, newFname);
		tele[index].fname = newFname;
		break;
	case 3: cout << "Please type the new  street address" << endl;
		cin.get();
		getline(cin,newAdd); 
		tele[index].streetAdd = newAdd;
		break;
	case 4: cout << "Please type the new  city, state, and zip code." << endl;
		cin.get();
		getline(cin,newCSZ); 
		tele[index].cityStateZ = newCSZ;
		break;
	case 5: cout << "Please type the new phone number."<< endl;
		cout << "(Example, 555-555-5555) " << endl;
		cin.get();
		getline(cin, newPhone);
		tele[index].phone = newPhone;
		break;
	default: cout << "Invalid selection. " << endl;
			 cout << "Returning to Main Menu." << endl;
			 return MENU;
	}
	//Display updated entry updated
	cout << endl;
	cout << "--Updated information--. " << endl;
	cout << tele[index].lname << endl;
	cout << tele[index].fname << endl;
	cout << tele[index].streetAdd << endl;
	cout << tele[index].cityStateZ << endl;
	cout << tele[index].phone << endl;
	cout << endl;
	
  //To exit function
  cout << "Enter 'R' to return to Main Menu." << endl;
  while(choice !='R')	
  {
	cin >> choice;
	choice = toupper(choice);
	if(choice == 'R')
	{
	  return MENU;
	}
	else if(choice != 'R')
	{
	   cout << "Invalid, Please enter 'R' " << endl;
	}
  }
}



}

What ends up happening is I enter r or R at the end and the message seen in the infinite loop is "Invalid, Please enter 'R'"
Any help please and thanks.
Last edited on
1
2
3
	int choice = 0;
    // ...
	cin >> choice;


I'm afraid cin isn't going to put your letter into your number.
HAHA GOD!
Dude thanks. I was thinking I just copied and pasted it whats the deal. It was deceiving because if you look I have choice and choice2.
So I didn't even see it. Thanks cire. Thank you for the help during my project. I have gotten it done now I'm just tweaking it and making little changes here and there.

Whew!:)
Topic archived. No new replies allowed.