16-08-2005, 21:57
|
|
|
|
חבר מתאריך: 04.08.02
הודעות: 4,468
|
|
...
כתבתי משהו בסיסי, תבדוק אם זה מתאים לך:
קוד:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char * getRandName( int nChars, char *sExtension )
{
const int nLenExtension = strlen( sExtension );
const int nTotalLen = nChars + nLenExtension + 1;
char *sRandName;
char sAlpha[26];
int i;
for( i=0; i<26; i++ )
sAlpha[i] = i+97; //i + 'a'
sRandName = malloc( nTotalLen );
if( sRandName == NULL )
{
perror( "Malloc:" );
return NULL;
}
for( i=0; i<nChars; i++ )
sRandName[i] = sAlpha[rand() % 26];
sRandName[i] = '\0';
strcat( sRandName, sExtension );
return sRandName;
}
int main( void )
{
char *sRandFileName;
FILE *fpOutput;
char sBuffer[256];
//generate random seed
srand( time( NULL ) );
sRandFileName = getRandName( 5, ".txt" );
if( sRandFileName == NULL )
return -1;
fpOutput = fopen( sRandFileName, "w" );
if( fpOutput == NULL )
{
perror( "Fopen:" );
return -1;
}
printf( "insert a string: " );
fgets( sBuffer, sizeof( sBuffer ), stdin ); //never user scanf() to get a string
fprintf( fpOutput, "%s", sBuffer );
fclose( fpOutput );
free( sRandFileName );
return 0;
}
הפונקציה "getRandName" מקבלת 2 פרמטרים:
הראשון הוא בעצם כמה תווים תרצה שהשם של הקובץ תהיה בנוי, והפרמטר השני בעצם מסמן את סיומת הקובץ, במקרה שלנו הגדרתי כ".txt".
בהצלחה.
|