Visual Studio 2017 Polskie Znaki

0

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;).

0

Spróbuj
setlocale(LC_ALL, "");

0

Próbowałem. Nadal nic.

0

screenshot-20171025210846.png

Wrzuciłem funkcje znalezioną na tym forum i dalej lipa.;/

0

Po co na angielski?:D kurde i tak nie mogę znaleźć tego installera, siedzę w plikach od language, może tu coś znajdę.

0

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...

0

Robisz wszystko tak jak na ss?

0

screenshot-20171025214217.png

To jest niemożliwe...

0

To nie wiem jak Ci pomóc. Sciągnij VS15 albo poczekaj na kogoś bardziej ogarniętego:D pozdro

0

Okey. I tak dzięki za intencje ;D

0

ustawiles locale na pusty string....

#include <iostream>
 
int main()
{
    setlocale( LC_ALL, "pl_PL" );
 
    std::cout << "ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
 
    return 0;
}

https://ideone.com/R60WqB

0

screenshot-20171025223418.png

Nadal nic...

0

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

0

screenshot-20171025225951.png
screenshot-20171025230101.png
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.

2
#include <iostream>
#include <locale>

int main()
{
    std::wcout.imbue(std::locale("Polish_poland.852"));
    std::wcout << L"ĄĘŁÓąężźłóśŚŻŹ\n";
} 
0

Dzięki.
Odinstalowałem VS. Sprawdzę po instalacji.
screenshot-20171026001843.png

Potrzebuje coś oprócz zaznaczonych, do samej nauki C++? Że tak już przy okazji zapytam:D.

0

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

0

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.

0

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"ąęćśńół";
0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1