That worked great, but when I transferred the list to my program I get an access violation error when I run it. I went through the program step by step with the debugger and everything seems fine.
Code:
#include <iostream.h>
#include <string.h>
#include <time.h>
enum {ATLANTA = 1, NEWYORK = 2, BOSTON = 3};
enum {MASTERCARD = 1, VISA = 2, AMEX = 3};
class Customer
{
//Everything is public until I get it to work right
public:
char name[256];
int cardType;
char cardNum[50];
time_t active;
int location;
static long int acctNumber;
};
//Linked list
struct node
{
Customer customer;
node *next;
};
/*Temprary prototypes*/
void fillNode(node *newNode);
void create_new_customer(node *iter);
void insertNode(node *iter, node *newNode);
int main(void)
{
char yn = 'y';
node *iter;
node *root;
root = new node;
strncpy(root->customer.name, "No Name", 255);
root->next = NULL;
iter = root;
while(tolower(yn) != 'n'){
create_new_customer(iter);
cout<<"Enter another record? ";
cin>>yn; cin.ignore();
iter = root->next;
}
iter = root->next;
while(iter->next != NULL){
cout<<iter->customer.name<<endl;
iter = iter->next;
}
cout<<iter->customer.name<<endl;
//Cleanliness is godliness
delete root, iter;
return 0;
}
//Customer options
void create_new_customer(node *iter)
{
node *newNode = new node;
fillNode(newNode);
//Find the end of the list
while(iter->next != NULL)
iter = iter->next;
insertNode(iter, newNode);
//Clean up after yourself stupid!
delete newNode;
}
void fillNode(node *newNode)
{
//Fill the name field
cout<<"Enter the customer's name: ";
cin.getline(newNode->customer.name, 256, '\n');
}
void insertNode(node *iter, node *newNode)
{
iter->next = newNode;
newNode->next = NULL;
iter = newNode;
}