Hi all, good to be here. I've only just started learning C++ and am having many associated problems . The following program should output two 'postcards' one using the default constructor and another that has its sender, receiver and place specified by the user. On running the program the default postcard comes out fine, however the user defined one will only output the receivers name with the place and sender fields left blank. I am using the Borland compiler, any suggestions would be majorly appreciated . Thanks.

My code is the following with the output listed afterwards:

Code:
#include <iostream>
#include <string>
using namespace std;
class Postcard
{ public:

	Postcard();
	Postcard (string,string,string);
	void print() const;
	void personalise(string,string,string);
  private:
  	string receiver;
  	string sender;
  	string place;
};

Postcard::Postcard()
{
	receiver = "Adam";
	place = "A Place";
	sender = "John";
}
Postcard::Postcard(string x, string y, string z)
{
	receiver = x;
	place = y;
	sender = z;
}
void Postcard::personalise(string a, string b, string c)
{
	receiver = a;
	place = b;
	sender = c;
}

void Postcard::print() const
{
	cout << "Dear " << receiver << endl;
	cout << "Having a lovely time at " << place << endl;
	cout << "Wish you were here" << endl;
	cout << "From " << sender << endl;
}
int main()
{
	string x, y, z;
	Postcard p;
	p.print();
	cout << "Please enter the receiver's name, the place and the sender's name seperated by spaces: ";
	cin >> x, y, z;
	p.personalise(x,y,z);
	p.print();
}
OUTPUT:
'Dear Adam
HAving a lovely time at A Place
Wish you were here
From John
Please enter the receiver's name, the place and the sender's name seperated by spaces:
Tony London Martin
Dear Tony
Having a lovely time at
Wish you were here
From'