#include <iostream>
#include<string>
using namespace std;

class Book
{

	private:

		string title;

		double price;

	public:

		Book();

		void setTitle(string s);

		void setPrice(double p);

		string getTitle() const
		
		{return title;}


		double getPrice() const
		
		{return price;}

		bool hasKeyword(string key);


	
};

Book::Book()
{
	title="None";
	price=0;
}

void Book :: setTitle(string s)
{
	title=s;

}

void Book::setPrice(double p)
{
	if(p>0)
	{
		price=p;
	
	}

	else
	{
		price=0;
	}

}



void Initialize(Book *book, int size)
{

This for loop doesn't work. Can you tell me why? or fix it? thank you.

for(int i=0;i>size;i++)
	{
		string T;
		double P;

		cout<<"Enter the title: ";
		cin>>T;
		

		cout<<"Enter the price: $";
		cin>>P;
		
		book[i].setTitle(T);
		book[i].setPrice(P);
		

	}



}
const int SIZE=3;

int main()
{

	int number;	
	string key;

		
	cout<< "Enter the number of books: ";
	cin>> number;

	
	Book *book=0;
	book=new Book[number];
	


	Initialize(book,number);
cout<<"Enter the keyword: ";
	cin>>key;

	
	
	
	
	

	delete[] book;
	book=0;


	system ("pause");
	return 0;

}

can you fix initialize function?

Edited 6 Years Ago by knellgust: n/a

When you enter the number of books, the \n you typed is still in the input buffer. This is read as the first input in Initialize(). Look at the cin.ignore() method

This article has been dead for over six months. Start a new discussion instead.