Kod z innego wątku:
int main()
{
system("chcp 1250");
double val1;
double val2;
while (cin >> val1 >> val2)
{
if (val1 == val2)
cout << "Liczby są równe." << endl;
else if (val1 > val2) {
cout << "Mniejsza z liczb to: " << val2 << "\nWiększa z liczb to: " << val1 << endl;
if (val1 - val2 < 1.0 / 100) cout << "Liczby są prawie równe." << endl;
}
else {
cout << "Mniejsza z liczb to: " << val1 << "\nWiększa z liczb to: " << val2 << endl;
if (val2 - val1 < 1.0 / 100) cout << "Liczby są prawie równe." << endl;
}
}
return 0;
}
Zakładam, że to działa (nie sprawdzałem).
Ale dlaczego?
Z tego, co mi wiadomo, (może się mylę), defaultowo w C++ stringi od wersji bodajże 11 przechowywane są w UTF-8, chyba że się wywoła jakieś tam funkcje biblioteki standardowej, które to zmieniają. W związku z tym na Linuxie można bez żadnych ceregieli napisać program w C++ wypisujący na stdout polskie znaczki i będzie działać; ale ponieważ cmd.exe ani nawet PowerShell defaultowo UTF-8 nie obsługują, to ten sam program będzie wypisywał na WIndowsie krzaczki. Czy to, co napisałem w tym akapicie, jest błędne?
Albowiem tutaj widzę program, który najpierw przestawia kodowanie znaków kosnoli Windowsa na Windows-1250, a potem (w moim rozumieniu) wypisuje na tę konsolę UTF-8?!