#include <fstream>
#include <print>

// Dateiname
constexpr auto FILENAME = "../../04_Data/messw.dat";

// main() Funktion
int main()
{
	// Datei oeffnen
	std::ifstream inFile(FILENAME, std::ios::binary | std::ios::in);
	// Fehler abfangen
	if (!inFile)
	{
		std::println("Fehler beim Oeffnen der Datei {}", FILENAME);
		exit(1);
	}

	std::print("Eingelesene Messwerte: ");
	// Kleinster/groesster Messwert
	unsigned short min = 9999, max = 0;
	// Alle Daten aus Datei einlesen
	do
	{
		// Wert aus Datei einlesen
		unsigned int wert;
		inFile.read(reinterpret_cast<char*>(&wert), sizeof wert);
		// Wenn Dateiende erreicht, Sprung zum Schleifenende
		if (inFile.eof())
			continue;
		// Eingelesenen Wert ausgeben
		std::print("{}, ", wert);
		// Kleinsten/groessten Wert merken
		if (wert < min)
			min = wert;
		else
			if (wert > max)
				max = wert;

	} while (!inFile.eof());
	// Datei wieder schliessen
	inFile.close();

	// Kleinsten/groessten Wert ausgeben
	std::println("\nKleinster Wert: {}, groesster Wert: {}", min, max);
}
