View Full Version : [C] data nel nome del file
Alhazred
24-07-2007, 10:40
Come faccio a creare un file ad esempio txt che abbia come nome la data e l'ora in cui è stato creato?
Una cosa tipo 2007-7-24 11-35-22.txt
Il formato 2007-7-24 11-35-22 riesco a stamparlo su console con:
SYSTEMTIME st;
GetSystemTime(&st);
printf("%d-%d-%d %d-%d-%d\n" ,st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st .wSecond);
ma non so come passarlo alla funzione fopen.
Idee?
RaouL_BennetH
24-07-2007, 10:51
non sono per niente bravo in C, però farei una cosa del genere:
/*oltre alle normali direttive di inclusione includo anche: */
#include <time.h>
/*codice vario... */
FILE *fp;
char myFile[] = "mioFile.txt";
struct tm *newtime;
time_t myClock;
fp = fopen(myFile, "a+");
time(&myClock);
newtime = localtime(myClock);
fprintf(fp, "quello_che_devo.....", asctime(newtime));
fclose(fp);
EDIT:
Non avevo ben capito la tua domanda... col modo che ti ho indicato la data la scrivi in una riga dentro al file...
stdecden
24-07-2007, 10:56
usa la classe std::String contenuta nel file di include <string>
cosí puoi scrivere:
#include<string>
#include<iostream>
int main(void)
{
std::String Stringa; //Definisco una stringa
int Numero = 24; //Definisco un numero da convertire in stringa
Stringa = Numero; //Converto il numero in stringa
char *StringaC = Stringa.c_str(); //Converto la stringa in una array di caratteri
}
P.S. Codice non testato, spero di non aver fatto errori:asd:
RaouL_BennetH
24-07-2007, 11:17
usa la classe std::String contenuta nel file di include <string>
cosí puoi scrivere:
#include<string>
#include<iostream>
int main(void)
{
std::String Stringa; //Definisco una stringa
int Numero = 24; //Definisco un numero da convertire in stringa
Stringa = Numero //Converto il numero in stringa
char *StringaC = Stringa.c_str(); //Converto la stringa in una array di caratteri
}
P.S. Codice non testato, spero di non aver fatto errori:asd:
uhm.. ma è C++ non C ... :) e poi non capisco il nesso con una data :D
stdecden
24-07-2007, 11:20
Hai ragione, non avevo letto bene.
comunque usando
SYSTEMTIME st;
GetSystemTime(&st);
si puó usare... in c++ peró
Alhazred
24-07-2007, 14:30
Ho risolto usando una sprintf :)
basta rinominare il file appena creato con la funzione:
rename(oldname,newname)
Alhazred
24-07-2007, 17:06
Si, ottima osservazione anche questa, però visto che riesco a farlo creare direttamente col nome giusto è meglio così.
Grazie ugualmente :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.