Cześć. Polskie znaki nie wyświetlają mi się w konsoli po kompilacji. Próbowałem setlocale(LC_ALL, "polish") i nic. Sprawdziłem w systemie(Winda8.1) i wszystko mam ustawione na Polski, również region i czas. Głowię się nad tym już kilka godzin i nie mogę znaleźć rozwiązania. Korzystam z Visual Studio 2017, pisze w C++.
Pomóżcie;).
Spróbuj
setlocale(LC_ALL, "");
Próbowałem. Nadal nic.
Wrzuciłem funkcje znalezioną na tym forum i dalej lipa.;/
Po co na angielski?:D kurde i tak nie mogę znaleźć tego installera, siedzę w plikach od language, może tu coś znajdę.
Zmieniłbym nawet i na angielski, gdyby nie to że wpierw muszę się uporać z tymi znakami.. brak interpunkcji w programach jest odpychający. Co dziwne pamiętam jak kiedyś programowałem w VS 2010 i pisałem w Pythonie, to nie było w ogóle tego problemu...
Robisz wszystko tak jak na ss?
To jest niemożliwe...
To nie wiem jak Ci pomóc. Sciągnij VS15 albo poczekaj na kogoś bardziej ogarniętego:D pozdro
Okey. I tak dzięki za intencje ;D
ustawiles locale na pusty string....
#include <iostream>
int main()
{
setlocale( LC_ALL, "pl_PL" );
std::cout << "ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
return 0;
}
Nadal nic...
dziwne, ze masz main. z tego co pamietam to visualowy zawsze mial tmain
char* locale = setlocale(LC_ALL, "pl_PL"); // Get the CRT's current locale.
std::locale lollocale(locale);
setlocale(LC_ALL, locale); // Restore the CRT.
std::wcout.imbue(lollocale); // Now set the std::wcout to have the locale that we got from the CRT.
std::wcout << L"ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
std::cin.get();
return 0;
sprobuj tego
Error.
Co do samego main, uczę się C++ z książki więc nie wiem.
Ewentualnie zmienię IDE, chociaż wolałbym rozwiązać ten problem i kontynuować w VS.
Zastanawiam się czy to nie jest wina ustawień programu. Mimo tego że przejrzałem już tam wszystko to nie mogę znaleźć opcji w której mógłbym zmienić kodowanie na 852, lub w ogóle choćby sprawdzić przez co koduje VS. Idę spać a jutro zrobię reinstall, może coś pomoże.
#include <iostream>
#include <locale>
int main()
{
std::wcout.imbue(std::locale("Polish_poland.852"));
std::wcout << L"ĄĘŁÓąężźłóśŚŻŹ\n";
}
Dzięki.
Odinstalowałem VS. Sprawdzę po instalacji.
Potrzebuje coś oprócz zaznaczonych, do samej nauki C++? Że tak już przy okazji zapytam:D.
Mimo że nie programuje w tym języku to mam poradę albo trop: może w systemie w konsoli masz ustawiona czcionkę która po prostu tych znaków nie obsługuje? Sprawdź inna np Arial czy Times New Roman
Od wersji VS2015 (chyba) możesz użyć opcji /execution-charset
. Zapisz pliki źródłowe w utf-8 z BOM-em, a w opcjach projektu ustaw /execution-charset:.852
.
Właściwości konfiguracji->ogólne->zestaw znaków, spróbuj pogrzebać.
Chociaż u mnie działa po prostu:
setlocale(LC_CTYPE, "");
std::wcout << L"ąęćśńół";
Axelbest w konsoli systemowej ogonki wyskakują normalnie, więc to raczej jest coś w samym VS.
Kurde sprawdziłem DZIAŁA
Od: YooSy
#include <iostream>
#include <locale>
int main()
{
std::wcout.imbue(std::locale("Polish_poland.852"));
std::wcout << L"ĄĘŁÓąężźłóśŚŻŹ\n";
}
I rzeczywiście działa. Różnicą jest wcout i L przed łańcuchem. Dzięki. ;)
Kamień z serca :D.