В настоящее время я работаю над проектом колледжа c, в котором я записал показания, сохраненные в структуре, в двоичный файл. В этой структуре я также сохраняю время и дату, когда элементы были введены. Затем я открываю файл в отдельной программе и читаю значения, которые работают нормально, однако мне трудно разобраться, как читать и отображать время и дату, сохраненные в файле, на экране. Ниже приведен код этого раздела в моей второй программе.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#pragma warning(disable : 4996)
struct readings {
double temperature;
double wind_direction;
double wind_speed;
time_t time;
};
int main(void)
{
struct readings* readings = NULL;
int option;
printf_s("Welcome to Data Acquisition Program\n");
printf_s("Options are as follows:\n 1:Load File\n 2:Search Weather by date\n 3:View Monthly Data\n 4:Export to Excel\n 5:Exit\n");
printf_s("Enter an option: ");
scanf_s("%d", &option);
if (option == 1)
{
FILE* pFile;
errno_t error;
int num_readings;
//struct readings* time_t time;
time_t t;
struct tm* tmp;
char MY_TIME[50];
time(&t);
tmp = localtime(&t);
error = fopen_s(&pFile, "weather.bin", "rb");
if (error == 0)
{
fread(&num_readings, sizeof(int), 1, pFile);
readings = malloc(sizeof(struct readings) * num_readings);
fread(readings, sizeof(struct readings), num_readings, pFile);
strftime(MY_TIME, sizeof(MY_TIME), "%x - %I:%M%p", tmp);
printf("Date & Time: %s\n", MY_TIME);
for (int i = 0; i < num_readings; i++)
{
printf_s("Temperature: %lf\n", readings[i].temperature);
printf_s("Wind Direction: %lf\n", readings[i].wind_direction);
printf_s("Wind Speed: %lf\n", readings[i].wind_speed);
}
fclose(pFile);
}
else { printf_s("Error: %d", error); }
}