Click here to Skip to main content
Rate this: bad
good
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 at 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 at 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
0 Schatak 394
1 OriginalGriff 340
2 _Amy 115
3 Abhijit Ghosh (Subho) 115
4 Andreas Gieriet 100
0 OriginalGriff 7,107
1 Sergey Alexandrovich Kryukov 5,623
2 Maciej Los 3,504
3 Peter Leow 3,373
4 DamithSL 2,505


Advertise | Privacy | Mobile
Web03 | 2.8.140721.1 | Last Updated 2 Oct 2012
Copyright © CodeProject, 1999-2014
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