There's a 4.9.3 now, but I'm having trouble getting it right in Code::Blocks right now, for some reason.
I tried using cin.ignore(), but it still exits right after asking whether I have any other family members to the information for, without taking any input.
Code:
#include <iostream>
using namespace std;
struct PersonalInfo
{
string name;
string home_address;
int phone_number;
};
PersonalInfo *personalInfo(PersonalInfo next_member[], int number_of_family_members);
int main()
{
int number_of_family_members;
char answer;
PersonalInfo person;
cout << "Personal Information Form:\n";
cout << "\n";
cout << "Please provide your name: ";
getline(cin, person.name, '\n');
cout << "Please provide your home address: ";
getline(cin, person.home_address, '\n');
cout << "Please provide your phone number: ";
cin >> person.phone_number;
//cin.ignore();
cout << "Hello, " << person.name << ", your phone number and address have\n";
cout << "successfully been noted.";
cin.ignore();
cout << " Are there any other family members whose information you would like to be noted?\n";
cin >> answer;
if (answer == 'Y' || answer == 'y')
{
cout << "How many other family members are there? ";
cin >> number_of_family_members;
cin.ignore();
PersonalInfo* next_member = new PersonalInfo[number_of_family_members];
personalInfo(next_member, number_of_family_members);
delete[] next_member;
next_member = NULL;
}
else if (answer == 'N' || answer == 'n')
{
cout << "Very well. Thank you for your cooperation\n";
return 0;
}
}
PersonalInfo *personalInfo(PersonalInfo next_member[], int number_of_family_members)
{
for (int i = 0; i < number_of_family_members; i++)
{
cout << "Please provide name of family member: ";
getline(cin, next_member[i].name, '\n');
cout << "Please provide home address of family member: ";
getline(cin, next_member[i].home_address, '\n');
cout << "Please provide phone number of family member: ";
cin >> next_member[i].phone_number;
cout << "This was information for family member number: " << i + 1 << endl;
}
for (int i = 0; i < number_of_family_members; i++)
{
cout << next_member[i].name << "\n";
cout << next_member[i].home_address << "\n";
cout << next_member[i].phone_number << "\n";
}
return next_member;
}
Thanks in advance.