Для того чтобы использовать UTF-8 в C++ приложении на Windows необходимо будет перегонять UTF-8 в UTF-16, так как Windows понимает в своих API только юникод кодировку UTF-16, а не UTF-8. Вариантов обычно несколько:
1) Перегнать исходные данные из UTF-8 в UTF-16 заранее
2) При чтении данных использовать MultiByteToWideChar и хранить всё в wstring (нативно выводится в консоль без проблем)
3) libiconv
4) Использовать какой-нибудь Qt, Boost или ещё какой фреймфорк, где есть встроенные функции для работы с UTF-8
Постфиксные и префиксные де/инкременты - это легко. Префиксные меняют значение переменной, и возвращают изменённый результат. Постфиксные возвращают значение переменной, а потом меняют её значение. Есть один подвох, когда в выражении несколько пост/префиксных инкрементов или декрементов одной переменной, то можно получить "неопределённое поведение", как было у Heidr, это связано с хранением переменных на стеке.