PDA

Просмотр полной версии : запись и восстановление числа из файла


Satell
06.10.2007, 12:44
нужно записать и восстановить время в файл в виде числа, как это сделать, у меня записанное и восстановленное время не совпадают

#include <time.h>

time_t curtime;

curtime=time(NULL);

printf("seichas: %s\n",ctime(&curtime));

FILE *file;
char* file_name = "d:\\time.txt";
char load_string[50];
file = fopen( file_name,"w");
fwrite(&curtime,sizeof(time_t),1,file);
fclose(file);



file = fopen(file_name,"r");
if(file != 0)
{
fgets(load_string, 50,file);
time_t b=(time_t) load_string;
printf("seichas: %s\n", ctime(&b));
}
fclose(file);

_Great_
06.10.2007, 13:18
а с какой радости должно совпадать если ты так пишешь?


FILE* fp;
time_t ctime;

ctime = time(0);
printf("Current time: %d\n", ctime);

fp = fopen("time.bin", "w");
fwrite( &ctime, sizeof(ctime), 1, fp);
fclose(fp);

ctime = 0;
fp = fopen("time.bin", "r");
fread( &ctime, sizeof(ctime), 1, fp);
printf("Current time (from file): %d\n", ctime);
fclose(fp);

Kaimi
06.10.2007, 13:21
Так сойдет?:


#include <iostream.h>
#include <fstream.h>
#include <time.h>
#include <conio.h>
int main()
{
time_t t;
int a=0,i=0;
cout<<"Make your decision: 1 - write; 2 - read"<<endl;
cin>>a;
switch(a)
{
case 1: {ofstream out("test.txt");
if(!out) { cout<<"Error"; return 1; }
out<<t;
out.close(); break;}
case 2: {ifstream in("test.txt");
if(!in) { cout<<"Error"; return 1;}
in>>i;
in.close(); break;}
}

cout<<"Out: "<<t<<endl;;
cout<<"In: "<<i<<endl;;
getch();

}


_Great_: Ему, вероятно, нужно было на Си...

_Great_
06.10.2007, 18:37
Kaimi
Значение t при записи в файл у тебя не определено.