Click here to Skip to main content
15,881,938 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
i had the code like this:-
C++
void Log ::CreateLogFile1()
{
	char    szDate[12];
	char buf[150];
	int i=0;
	int iLevel;
 
	//get the path of ini file
	//	TO DO
	//check status of ini file
	//	TO DO
	//read ini file and get log directory path
	//	TO DO
	//create log file
	_strdate( szDate );
	//logfilename format ServerManagermm-dd--yy
	strcpy(buf,szLogDir1);
	strcat(buf, "\\");
	strcat(buf, "\\");
	strcat(buf,a);
		
	strcat(buf,szDate);
	strcat(buf,".txt");
 
	while(buf[i] != '\0')	// mm/dd/yy to mm-dd-yy conversion
	{
		if(buf[i] == '/')
			buf[i] = '-';
		i++;
	}
 
	ofstream pOS(buf,ios::app);
	pOS<<"\nBinary Strarted..\n"<<endl;
	pOS.close();
 
}

i modified it as like this:-
C++
void Log ::WriteBinary(char bufg[139])
{
	char    szDate[12];
		char    szTime[12];
		char buf[2000];
		char bufpath[2000];
		int i=0;
		_strdate( szDate );
		_strtime( szTime );

		strcpy(buf,szLogDir1);
		strcat(buf, "\\");
		strcat(buf, "\\");
		strcat(buf,a);
		strcat(buf,szDate);
		strcat(buf,".txt");//as buf contain my file path and i want to use it as FILE*
			memcpy(bufpath,buf,sizeof(buf));
		while(buf[i] != '\0')
		{
			if(buf[i] == '/')
				buf[i] = '-';
			i++;
		}
		ofstream pOS(buf,ios::app);
		
		fprintf((FILE*)bufpath, "%s::%s::DATA IS::", szDate, szTime); 
		fwrite(bufg, 1, 138, (FILE*)bufpath);
		fprintf((FILE*)bufpath, "\n");

		
		
		pOS<<buf<< endl;
		pOS.close();


}

my code break at the following line "
fprintf((FILE*)bufpath, "%s::%s::DATA IS::", szDate, szTime);
"
Can anyone tell on this?
Posted
Comments
Richard MacCutchan 2-Oct-12 3:57am    
Why have you opened this question? It is a duplicate of the one I have been helping you with, and I have already given you the code to solve your problem.

fprintf expects a valid FILE *.
That is you must first open the file (see fopen[^]) to obtain a valid FILE pointer and then pass such file pointer to fprintf. e.g.

C
FILE * fp = fopen(bufpath, "r");
if (fp)
{
  fprintf(fp, "Hi");
}
else
{
  // handle file open error
}


As already noted by Superman your cast is evil.
 
Share this answer
 
fprintf is used for files.
For buffers use sprintf.
And remember, typecasting is evil.
 
Share this answer
 
Comments
Mohibur Rashid 2-Oct-12 7:53am    
he knows how to use but does not know why to use

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900