Pliki binarne | znaki diakrytyczne

0

Witam, podczas uruchamiania tej funkcji zamian polskich znaków wyskakują mi dziwne kształty. Sprawdzałem plik *.txt jest z nim wszystko dobrze. W main dodałem
"setlocale( LC_ALL, "" );"
Spoiler Ukryj
<ort>void wyswietl_test()
{
string zmienna;

ifstream plik_odczyt;
plik_odczyt.open( "test.txt" );

cout << "Po kazdym wyswietleniu pytania nacisnij dowolny przycisk aby kontynuować." << endl << endl;

while( !plik_odczyt.eof() )
{
    for( int i = 0; i < 4; i++ )
    {
        getline( plik_odczyt, zmienna );
        cout <<  zmienna << endl;
    }

    if( plik_odczyt.eof() )
        break;

    getch();
}

plik_odczyt.close();

cout << endl << "Naciśnij klawisz aby kontynuować." << endl;
getch();

}</ort>
Tekstu z trzeciej linijki też nie wyświetla poprawnie. Czy macie jakieś sugestie albo widzicie błąd;
Oraz mam problem z odczytem(zapisem po trosze też) plików binarnych;
<ort>
...
struct Sosoba
{
char imie[ 15 ];
char nazwisko[ 15 ];
int punkty;
float procenty;
};
...
void wyswietl_wyniki()
{
ifstream plik_odczyt( "wyniki1.dat", ios_base::binary | ios_base::in );
string zmienna;

Sosoba dane;

cout << "Po kazdym wyswietleniu pytania nacisnij dowolny przycisk aby kontynuowac." << endl << endl;

for( int i = 1; ; i++ )
{
    plik_odczyt.read( (char*) &dane, sizeof dane );

    cout << i << ". " << dane.imie << " " << dane.nazwisko << " " << dane.punkty << " " << dane.procenty << "%" << endl;

    if( plik_odczyt.eof() )
        break;

    getch();
}

getch();
plik_odczyt.close();

}
... </ort>
W pliku binarnym znajdują się kolejno: imie, nazwisko punkty (np. 0.8) w jednym wierszu. Lecz nie czyta mi tego poprawnie. Wiem, że mogę skorzystać z "getline" i wczytać cały wiersz do zmiennej lecz sądzę, że takiej operacji nie pozwoli mi użyć mój nauczyciel.
Jak widzicie jakiś błąd albo macie jakieś sugestie co może być źle to z góry dziękuje.

1

Pewnie masz różne kodowanie w pliku oraz konsoli.

0

Szczerze mówiąc to jestem kompletnym laikiem w tym, zawsze po prostu odpalałem kompilator (Code Block) i pisałem co trzeba nie zmieniając nic w ustawieniach. Czy mógłbyś pomóc mi z tym problemem?

0

Code::Blocks jest kompilatorem tak bardzo, jak teleskop jest wszechświatem.
Jakie masz kodowanie tego swojego pliku?

0

Kodowanie pliku to UTF-8

0

Ano, i mamy problem.
W konsoli ot tak sobie UTF-8 nie wyświetlisz.

0

Konsola pod Windows nie obsługuje UTF-8.

0

A czy da się ten problem jakoś rozwiązać?

0

Jakie hasła wpisywałeś w Google w celu rozwiązania tego problemu niewyświetlania się znaków UTF-8 w konsoli Windows?
Ponieważ odnoszę coś wrażenie, że na pałę piszesz posty, zamiast samemu poszukać.

0

Zmieniłem kodowanie pliku tekstowego, lecz np "cout << "ć "; " w ten sposób dalej, źle wyświetla

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