Man kann der Console auch sagen welcher Zeichensatz für die Ausgabe benützt werden soll.
SetConsoleOutputCP()
Ich hab's noch nie getestet aber mir scheint das ist die eleganteste Lösung für das Umlautproblem.
Bitte kurze Info hier im Forum ob's funtkioniert weil ich könnte das für ein altes C++ Programm gebrauchen