Code::Blocks nie umożliwia czytelnej pracy w CP-852 (które jest domyślną stroną kodową w konsoli) w swoim edytorze tak jak np. Visual Studio, które ma też pomocne funkcje jak setlocale().
Istnieją co najmniej 3 rozwiązania mojego problemu:
1. Edytować plik źródłowy w zewnętrznym edytorze i zapisać go z użyciem kodowania OEM 852. W Code::Blocks polskie znaki i np. znak ° są nieczytelne, ale konsola i zewnętrze edytory wyświetlają je poprawnie.
2. Używać tabeli ASCII i ósemkowych kodów dla dostępnych znaków np. https://theasciicode.com.ar/
Jak używać? Przykład:
Odnaleźć kod znaku ASCII dla symbolu ° - jest to 248 dziesiętnie.
Po zamianie na system ósemkowy otrzymujemy 370.
Wystarczy wstawić ciąg "\370" do łańcucha znaków, w który chcemy użyć znaku.
std::cout << "temperatura wyra\276ona w \370 Celsjusza: ";
3. I chyba najprzyjemniejszy: W edytorze pozostawić domyślne kodowanie i skorzystać z biblioteki <locale.h> lub <clocale>
i wywołać funkcję:
setlocale(LC_ALL, "");
od tej pory symbole Unicode wyświetlane w C::B wyświetlą się również poprawnie w konsoli.