Witam. Piszę z problemem dotyczącym polskich znaków w konsoli. Mianowicie wczytuję z pliku tekstowego do zmiennej string napis z polskimi znakami. Wyświetlając go w konsoli pokazują się krzaki. Chciałem załatwić to za pomocą funkcji tr(nazwa_zmiennej) jednak to nie działa. Pojawia się error: cannot convert 'std::string {aka std::basic_string<char>}' to 'char*' for argument '1' to 'char* tr(char*)'|. Prosił bym o pomoc w wymyśleniu jakiegoś sposobu.
PROGRAM:
int main()
{
string kk;
fstream plik;
plik.open("dokument.txt", ios::in);
string linia;
getline(plik, linia);
kk=linia;
cout <<linia<< endl;
return 0;
}
FUNKCJA TR:
char *tr(char *str)
{
static char buff[256];
char cp[]="\245\206\251\210\344\242\230\276\253\244\217\250\235\343\340\227\275\215ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
if(strlen(str)>=sizeof(buff)) return str;
char *bf=buff;
while(*str)
{
char *pos=strchr(cp+18,*str);
*(bf++)=pos?*(pos-18):*str;
++str;
}
*bf=0;
return buff;
}