#include <stdio.h>
#include <iostream>
#include <io.h>
using namespace std;

/
r открытие файла только для чтения. Ошибка если файла не существует
* w открытие файла только для записи. Если не существует, будет создан
* Если существует, он будет перезаписан.
* a открытие файла для добавления. Если не существует, будет создан.
* Если существует, данные будут дозаписаны в конец.
* r+ открытие файла для чтения и записи без возможности изменения длины
* Ошибка, если файла не существует
* w+ открытие файла для чтения и записи, если не существует, будет создан
* Если существует будет перезаписен
* a+ открытие файла для чтения и записи с конца файла
* rb открытие файла для чтения, как двоичного
* wb открытие файла для записи, как двоичного
* b открытие файла для добавления, как двоичного
/

/
* fseek(FILE* f, long int offset, int origin)
* offset - это количество байт на которые будет смещён указатель
* origin - это enum, который отвечает за то, откуда начинает перемещение указатель
* SEEK_SET - с начала файла
* SEEK_CUR - с текущей позиции
* SEEK_END - с конца файла
/

/
* long _findfirst(char* path, _finddata_t* fileinfo)
* _finddata_t
* unsigned attrid _A_NORMAL, _A_RDONLY, _A_ARCH
* time_t time_create
* time_t time_access
* time_t time_write
* _fsize_t size
* char name[260]
/

struct item
{
char name[20];
unsigned int count;
float price;
};

void products()
{
int i = 0;
item myshop[10];
FILE f;
if (fopen_s(&f, “D:\Kazin\pricelist.txt”, “r”))
{
cout << “Error! Couldn’t open file!\n\n”;
}
else {
while (!feof(f))
{
fscanf_s(f, “%s”, myshop[i].name, sizeof(myshop[i].name));
fscanf_s(f, “%u”, &myshop[i].count, sizeof(myshop[i].count));
fscanf_s(f, “%f”, &myshop[i].price, sizeof(myshop[i].price));

cout << myshop[i].name << ‘\t’ << myshop[i].count << ‘\t’ << myshop[i].price << endl;
i++;
}
}
}

void countSymbols()
{
const char* path = “D:\Kazin\postcard.txt”;
int c;
int len = 0, cnt = 0;
FILE* f;

if (fopen_s(&f, path, “r”))
{
cout << “Error! File couldn’t be opened.\n\n”;
}
else
{
while (!feof(f))
{
c = fgetc(f);
if (c == ‘\n’)
{
cnt++;
cout << "String " << cnt << " length " << len << endl;
len = 0;
}
else
{
len++;
}
}
if (len)
{
cnt++;
cout << "String " << cnt << " length " << len << endl;
}
}
}

void readStrs()
{
const char* path = “D:\Kazin\postcard.txt”;
char buf[40];
int c;
int len = 0, cnt = 0;
FILE* f;

if (fopen_s(&f, path, “r”))
{
cout << “Error! File couldn’t be opened.\n\n”;
}
else
{
while (!feof(f))
{
fgets(buf, 40, f);
len = strlen(buf);
if (buf[len - 1] == ‘\n’)
buf[len - 1] = ‘\0’;
cout << buf << endl;
}
}
}

void writeBin()
{
const char* path = “D:\Kazin\data.bin”;
const int n = 5;
int arr[n]{ 16, 8, 4, 2, 1 };
FILE* f;
if (fopen_s(&f, path, “wb”))
{
cout << “Error! Couldn’t open file\n\n”;
}
else
{
fwrite(&arr, sizeof(int), n, f);
}
}

void writeFloatBin()
{
srand(time(0));
const char* path = “D:\Kazin\b_data.bin”;
int n = 10, imax, imin, i;
float* a, min, max;
FILE* f;

if (fopen_s(&f, path, “wb”))
{
cout << “The file can’t be opened\n”;
}
else
{
float intPart, tailPart, res;
for (i = 0; i < n; i++)
{
intPart = rand() % 100;
tailPart = (rand() % 100) / 100.0f;
res = intPart + tailPart;
cout << res << ’ ';
fwrite(&res, sizeof(float), 1, f);
}
fclose(f);
}

if (fopen_s(&f, path, “r+b”))
{
cout << “The file can’t be opened\n”;
}
else
{
a = new float[n];
fread(a, sizeof(float), n, f);

for (imax = imin = 0, max = min = a[0], i = 1;
i < n; i++)
{
if (a[i] > max)
{
max = a[i];
imax = i;
}
if (a[i] < min)
{
min = a[i];
imin = i;
}
}

fseek(f, sizeof(float) + imax * sizeof(float), SEEK_SET);
fwrite(&min, sizeof(float), 1, f);

fseek(f, sizeof(float) + imin * sizeof(float), SEEK_SET);
fwrite(&max, sizeof(float), 1, f);
cout << endl;
fclose(f);
delete[] a;
}
}

void ReadFile()
{
srand(time(0));
const char* path = “D:\Kazin\b_data.bin”;
int n = 10;
float a;
FILE* f;

if (fopen_s(&f, path, “rb”))
{
cout << “The file can’t be opened\n”;
}
else
{
while (!feof(f)) {
fread(&a, sizeof(float), 1, f);
cout << a << ’ ';
}
cout << endl;
fclose(f);
}
}

используя только перечисленные библиотеки напиши программу которая получает папку о пользователя и найдёт там последний созданный файл