loop and class problem

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Feb 2005
Posts: 13
Reputation: cap2361 is an unknown quantity at this point 
Solved Threads: 0
cap2361 cap2361 is offline Offline
Newbie Poster

loop and class problem

 
0
  #1
Feb 27th, 2005
lost!!! I took a homework assignment that worked written in just main and for practice I wanted to make them classes with pointers and have one derived class of base. Although the while loop, for the most part worked before it was turned into a class, it now does not work. I tried using If statement but I am haveing problems constructing. Now I'm totally at a lose as what to do.






error C2664: 'strcmp' : cannot convert parameter 1 from 'char *[20]' to 'const char *
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
C1903: unable to recover from previous error(s); stopping compilation
Error executing cl.exe.

sample.obj - 2 error(s), 0 warning(s)

*************************************************************

#include <iostream.h>	// This is used for the cout's and cin's
#include <fstream.h>	// This is used to read from and write to files
#include <stdlib.h>		// This gives us the exit(1) command
#include <string.h>	
	

class file1
{

protected:
	char *filename[12];
	char *name[20];


public:
	file1()
	{ 	cout << "Enter the filename: ";
		cin >> *filename;
		cout << endl; 
	}

	void file();
	//void display();
};


void file1::file()
{



// Creating an instance of outbound data
	ofstream outfile;

	outfile.open(*filename, ios::app);

	if (outfile.fail())
	{
		cout <<"The file failed to open" <<endl;
		exit(1);
	}


	cout << "Enter names to the file called: "<< *filename <<endl;
	cout << "Enter end to stop entering names." << endl;

	
	cout << endl;


//loop to enter names and keep count
//section having problems with!
while(strcmp(name, "end"))
{
	

	int count = 0;
	cout << "Enter names: " << endl;
	cin >>  *name;}

	
	//send data to outfile
	outfile << *name;

	outfile << "\n";

	count++;
	cout << endl;

	
}

	// Closing the outfile to free up memory
	outfile.close();

return ;
}
class filederived : file1
{

public:
	char derived();

}

filederived::derived()
{


	int count = 0;
// Creating an instance of inbound data
	ifstream infile;

	// Opening the infile "filename" for reading
	infile.open(*filename);

	//to view amount of names entered
	cout << "You have entered " << count << " names " << "in file " << *filename << "\n\n";

	while(count>1)
	{
	// Reading the contents of "filename" 
	infile >> *name;

	//to view names entered into the file
	cout <<"The name you have entered is: " << *name << endl;
	count--;

	return ;
	}

	
	infile.close();
	return ;
}
	
int main()
{
	
	file1 a;
	filederived b;

	a.file();
	

	b.derived();

	return 0;
}









:rolleyes:
Last edited by alc6379; Feb 28th, 2005 at 5:54 pm. Reason: added [code] tags
Reply With Quote Quick reply to this message  
Join Date: Dec 2004
Posts: 445
Reputation: 1o0oBhP is an unknown quantity at this point 
Solved Threads: 6
1o0oBhP's Avatar
1o0oBhP 1o0oBhP is offline Offline
Posting Pro in Training

Re: loop and class problem

 
0
  #2
Mar 4th, 2005
strcmp parameters are invalid like the compiler says! I would convert to using the std::string class found in <string> as it is much easier to use and has most of its operators overloaded so you can do things like:

  1. using namespace std;
  2.  
  3. string str1 = "This is a ";
  4. str1 += "message";
  5. cout << str1 << "\n"; // prints "This is a message"
http://sales.carina-e.com

no www
no nonsense

coming soon to a pc near you! :cool:
Reply With Quote Quick reply to this message  
Join Date: Jan 2005
Posts: 12
Reputation: Index is an unknown quantity at this point 
Solved Threads: 1
Index Index is offline Offline
Newbie Poster

Re: loop and class problem

 
0
  #3
Mar 4th, 2005
Look at the lines:

protected:
char *filename[12];
char *name[20];

I assume U just need two variables for holding two strings, not a tables of 12 (20) pointers to char. If so, try to remove * before filename and name and fix other errors by yourself (there are several of them )
Reply With Quote Quick reply to this message  
Join Date: Dec 2004
Posts: 445
Reputation: 1o0oBhP is an unknown quantity at this point 
Solved Threads: 6
1o0oBhP's Avatar
1o0oBhP 1o0oBhP is offline Offline
Posting Pro in Training

Re: loop and class problem

 
0
  #4
Mar 5th, 2005
If you must use char * (c-style) strings then define them as

char *string1;
char *string2;

string1 = (char*) new char[length + 1]; // allocate memory for a string of a given length. the + 1 is for the \0 character

delete [] string1; // deletes allocated memory

the strings should be ok to pass to c string functions
http://sales.carina-e.com

no www
no nonsense

coming soon to a pc near you! :cool:
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



Tag cloud for C++
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC