Click here to Skip to main content
12,401,793 members (54,011 online)
Rate this:
 
Please Sign up or sign in to vote.
i had the code like this:-
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:-
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 1-Oct-12 19:20pm
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.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

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.

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

As already noted by Superman your cast is evil.
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

fprintf is used for files.
For buffers use sprintf.
And remember, typecasting is evil.
  Permalink  
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)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160721.1 | Last Updated 2 Oct 2012
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100