#include <iostream>
#include <fstream>
#include <print>

// Dateiname
constexpr auto FILENAME = "../../04_Data/preisindex.txt";

int main()
{
	// Datei zum Lesen und Schreiben oeffnen
	std::fstream inFile(FILENAME, std::ios::in|std::ios::out|std::ios::app);
	if (!inFile)
	{
		std::println("Kann Datei {} nicht oeffnen!", FILENAME);
		exit(1);
	}
	// Einzulesendes Jahr und Preisindex
	unsigned short jahr;
	float preisIndex;
	// Einlesen bis Dateiende erreicht
	std::cout << "Preisindizes:\n";
	do
	{
		// Preisindex einlesen
		inFile >> jahr >> preisIndex;
		// Wenn nicht Dateieinde erreicht, Preisindex ausgeben
		if (!inFile.eof())
			std::println("Preisindex {}: {:.2f}", jahr,preisIndex);
	} while (!inFile.eof());

	// Preisindex fuer 2025 anhaengen
	// eof-Status zuruecksetzen
	inFile.clear();
	// Neuen Preisindex ablegen
	std::println(inFile,"{} {}", 2025,121.5);

	// Lesezeiger zuruecksetzen auf Dateianfang
	inFile.seekg(0, std::ios::beg);
	// Alle Preisindizes wieder einlesen
	std::println("\nAktualisierte Preisindizes:");
	// Einlesen bis Dateiende erreicht
	do
	{
		// Preisindex einlesen
		inFile >> jahr >> preisIndex;
		// Wenn nicht Dateieinde erreicht, Preisindex ausgeben
		if (!inFile.eof())
			std::println("Preisindex {}: {:.2f}", jahr,preisIndex);
	} while (!inFile.eof());

	// Datei schliessen
	inFile.close();
}
