PDA

Visualizza la versione completa : c creare file problema


roberto81
24-05-2010, 15:25
ciao a tutti io vorrei creare un file txt con c tramite questo programma di prova ma non mi
funziona.... sapreste darci un'occhiata!!!!!


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void save(char *nome,int dim)
{
time_t sectime;
struct tm *timeinfo;
time(&sectime);
timeinfo = localtime(&sectime);
strftime(nome,dim,"%a_%d_%b_%Y_%X",timeinfo);
};
int main ()
{
int dim =29;
FILE *ptr;
char nome[dim];
char ext[]=".txt";
save(nome,dim);
strcat(nome,ext);
ptr=fopen(nome,"w");
if(ptr == NULL)
printf("non aperto\n");
fclose(ptr);
//qui se stampo la stringa me la da tutta.
printf("%s",nome);
return 0;
}

google01
24-05-2010, 16:45
Stai lavorando su Windows?
Se si, ricordati che non permesso creare file con nomi contenenti caratteri speciali.
Nel timestamp che cerchi di utlizzare come nome file sono presenti i due punti.

Saluti.

simo_us
24-05-2010, 21:53
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

void save(char *nome,int dim)
{
time_t sectime;
struct tm *timeinfo;
time(&sectime);
timeinfo = localtime(&sectime);
strftime(nome,dim,"%a_%d_%b_%Y_%X",timeinfo);
}

int main (void)
{
int dim =29;
FILE *ptr;
char nome[dim];
char ext[]=".txt";

save(nome,dim);
strcat(nome,ext);

if(!(ptr=fopen(nome,"w")))
printf("File has not been created\n");

fclose(ptr);

//qui se stampo la stringa me la da tutta.
printf("Created File; %s\n",nome);

return 0;
}

Il programma funziona perfettamente, su Linux
PS: ho cambiato leggermente il codice.. Ma funzionava gia principio..

roberto81
25-05-2010, 07:54
grazie mille ora ho capito!!!!!!

Loading