Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odczytywanie polskich znaków z pliku.txt

Ostatnio zmodyfikowano 2014-08-16 14:01
Autor Wiadomość
cashis
Temat założony przez niniejszego użytkownika
Odczytywanie polskich znaków z pliku.txt
» 2014-08-16 03:12:10
Cześć,

Piszę sobie prosty programik, który ma bazę słów do popularnej gry Scrabble. Nie jest to nawet wersja alpha, gdyż docelowy koniec aplikacji ma mieć GUI itd... Jednak natrafiłem na dość spory problem. Poczytałem dość sporo jednak nie mogę dojść podczas działa programik nie chce znajdować mi słów z polskimi znakami. Prosiłbym o pomoc, bo próbowałem już chyba wszystkiego. Wiem, że muszę zmienić kodowanie na UTF-8 jednak nie potrafie tego zrobić w samym programie. Plik ze słowami jest przekonwertowany programem notepad++ na UTF-8.

C/C++
#include "stdafx.h"
#include "iostream"
#include "fstream"
#include"string"
#include < map >
#include <Windows.h>
using namespace std;


int _tmain( int argc, _TCHAR * argv[] )
{
   
    setlocale( LC_ALL, "Polish" );
   
    string slowo;
    string tekst;
    cout << "Słownik scrabble \n"
    << "Podaj słowo ktore chcesz sprawdzić \n";
   
    getline( cin, slowo );
   
    fstream slownik;
    slownik.open( "C:\\Users\\patry_000\\Desktop\\Scrabble\\Słowa.txt", ios::in );
   
    if( slownik.good() == true ) {
       
        while( !slownik.eof() ) {
           
            getline( slownik, tekst );
           
            if( tekst == slowo ) {
                cout << "Mozna użyc tego slowa" << endl;
            }
        }
       
        slownik.close();
    }
    else
    {
        cout << "Nie udalo sie otworzyc pliku";
    }
   
    system( "pause" );
    return 0;
}
P-115556
Jacob99
» 2014-08-16 10:41:12
P-115557
1aam2am1
» 2014-08-16 10:41:24
zamień cout na wcout, char na wchar_t, string na wstring.
W przed tymi nazwami to jakby nowy standard: UTF-8 w c++
Poczytaj o wchar_t
P-115558
cashis
Temat założony przez niniejszego użytkownika
» 2014-08-16 13:04:25
Nie za bardzo to coś zmieniło, gdyż nawet po zmianie na wstring itd program dziala tylko dla stringów bez polskich znaków. Co jest dziwne to to, że gdy wpisuje w konsole polskie znaki i je wyswietlam to pokazuja się normalnie, a jak pobieram slowo z pliku to wyskakują krzaki na polskich znakach...
P-115569
1aam2am1
» 2014-08-16 13:59:10
pobieraj słowo odpowiednio do wstring. A plik musi być w UTF-8
P-115570
cashis
Temat założony przez niniejszego użytkownika
» 2014-08-16 14:01:37
Notepad++ przerobił mi plik do UTF-8 i pobieram słowo do wstringa... Co bym nie zrobił to krzaki wyskakują. Muszę ujednolicić kodowanie wpisywane z klawiatury do tego pobieranego z pliku. Ktoś ma może pomysł jak to zrobić ?


C/C++
int _tmain( int argc, _TCHAR * argv[] )
{
   
   
   
   
    wstring tekst;
    wstring slowo;
    cout << "Podaj slowo do sprawdzenia" << endl;
    getline( wcin, slowo );
   
    wfstream slownik;
    slownik.open( "C:\\Users\\patry_000\\Desktop\\Scrabble\\Słowa.txt", ios::in | ios::out );
   
    if( slownik.good() == true ) {
        wcout << "Udalo sie otworzyć plik" << endl;
       
        while( !slownik.eof() )
        {
            getline( slownik, tekst );
            wcout << tekst << endl;
           
            if( slowo == tekst )
            {
                wcout << "Takie same" << endl;
            }
            else wcout << "Inne" << endl;
           
        }
       
       
        slownik.close();
    }
    else cout << "Nie udalo sie otworzyc pliku";
   
   
   
   
   
    system( "pause" );
}
P-115571
« 1 »
  Strona 1 z 1