#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);
	}
}

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