944,087 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 5160
  • C++ RSS
Feb 27th, 2005
0

loop and class problem

Expand Post »
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
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cap2361 is offline Offline
13 posts
since Feb 2005
Mar 4th, 2005
0

Re: loop and class problem

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:

C++ Syntax (Toggle Plain Text)
  1. using namespace std;
  2.  
  3. string str1 = "This is a ";
  4. str1 += "message";
  5. cout << str1 << "\n"; // prints "This is a message"
Reputation Points: 16
Solved Threads: 6
Posting Pro in Training
1o0oBhP is offline Offline
445 posts
since Dec 2004
Mar 4th, 2005
0

Re: loop and class problem

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 )
Reputation Points: 10
Solved Threads: 1
Newbie Poster
Index is offline Offline
15 posts
since Jan 2005
Mar 5th, 2005
0

Re: loop and class problem

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
Reputation Points: 16
Solved Threads: 6
Posting Pro in Training
1o0oBhP is offline Offline
445 posts
since Dec 2004
Jul 12th, 2010
0
Re: loop and class problem
I M FACING BELOW PROBLEM WHEN PROGRAMMING IN CLASS IN C++. PLZ SORT OUT THIS
WARNING IS:
-- FUNCTION SHOULD BE EXPANDED INLINE
class one
{
public:
int a,b,c;
void show()
{
for(i=0;i<=5;i++)
{
cout<<"sam";
}
}
};

void main()
{
one obj;
obj.show();
}

program is executing but compiler is showing warning i.e.

FUNCTION CONTAINING FOR ARE NOT EXPANDED INLINE.
IF ANY ONE HAVE IDEA ABOUT SAME THEN PLZ SORT OUT MY PROBLEM
Reputation Points: 10
Solved Threads: 0
Newbie Poster
sunrise_cool is offline Offline
2 posts
since Jul 2010
Jul 12th, 2010
0
Re: loop and class problem
I M FACING BELOW PROBLEM WHEN PROGRAMMING IN CLASS IN C++. PLZ SORT OUT THIS
WARNING IS:
program is executing but compiler is showing warning i.e.

FUNCTION CONTAINING FOR ARE NOT EXPANDED INLINE.
IF ANY ONE HAVE IDEA ABOUT SAME THEN PLZ SORT OUT MY PROBLEM
class one
{
public:
int a,b,c;
void show()
{
for(i=0;i<=5;i++)
{
cout<<"sam";
}
}
};

void main()
{
one obj;
obj.show();
}

program is executing but compiler is showing warning i.e.

FUNCTION CONTAINING FOR ARE NOT EXPANDED INLINE.
IF ANY ONE HAVE IDEA ABOUT SAME THEN PLZ SORT OUT MY PROBLEM
Reputation Points: 10
Solved Threads: 0
Newbie Poster
sunrise_cool is offline Offline
2 posts
since Jul 2010

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: File descriptors
Next Thread in C++ Forum Timeline: remaider program





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC