Problem z funkcją wcstok
Ostatnio zmodyfikowano 2015-06-25 21:25
somas3k Temat założony przez niniejszego użytkownika |
Problem z funkcją wcstok » 2015-06-25 20:33:39 Witam, mam problem z funkcją wcstok, codeblocks na windows 8.1 wywala mi błąd: error: converting to execution character set: Illegal byte sequence w tej linijce: slowa = wcstok( bufor, L" ,.-?!/:;()[]{}\\\"|'@#$%^&*+=<>~`\n\t”„–" ); Chodzi mu chyba o te znaki: ”„– bo bez nich działa jak należy bez żadnych błędów a jednak potrzebne mi są ;c Oto cały plik źródłowy: #include <stdio.h> #include <stdlib.h> #include <wchar.h> #include "lista.h" #include "drzewo.h" #include "obslugaplikow.h"
void wypiszdrzewo( FILE * plik, struct Slowo * wezel ) { if( wezel ) { wypiszdrzewo( plik, wezel->lewy ); fwprintf( plik, L"%ls: ", wezel->slowo ); wypiszWystapienia( plik, wezel->wyst ); fprintf( plik, "\n" ); wypiszdrzewo( plik, wezel->prawy ); } }
int wypisz( char * nazwapliku, struct Slowo * korzen ) { FILE * plik = fopen( nazwapliku, "w" ); if( plik != NULL ) { wypiszdrzewo( plik, korzen ); fclose( plik ); return 1; } else { printf( "Nie uda³o siê utworzyæ pliku!\n" ); return 0; } }
int odczytajPlik( char * nazwaPliku, struct Slowo ** korzen ) { FILE * plik = fopen( nazwaPliku, "rt" ); if( plik != NULL ) { wchar_t bufor[ 512 ]; wchar_t * slowa = NULL; int linijka = 1; while( fgetws( bufor, 512, plik ) ) { slowa = wcstok( bufor, L" ,.-?!/:;()[]{}\\\"|'@#$%^&*+=<>~`\n\t”„–" ); while( slowa != NULL ) { if( slowa[ 0 ] != '\n' ) dodajSlowo( &( * korzen ), wcsdup( slowa ), linijka ); slowa = wcstok( NULL, L" ,.-?!/:;()[]{}\\\"|'@#$%^&*+=<>~`\n\t”„–" ); } linijka++; } fclose( plik ); return 1; } else { printf( "Otworzenie pliku nie uda³o siê!\n" ); return 0; } } Gdyby było mało aby pomóc mi rozwiązać ten problem mogę wysłać wszystkie pliki źródłowe i nagłówki. Z góry dziękuję za pomoc :) |
|
pekfos |
» 2015-06-25 21:00:57 bo bez nich działa jak należy bez żadnych błędów |
Jakich błędów? |
|
Monika90 |
» 2015-06-25 21:03:09 Użyj opcji kompilacji -finput-charset=<nazwa-strony-kodowej> , to powinno pomóc.
PS. Źle nazwałeś temat.
|
|
somas3k Temat założony przez niniejszego użytkownika |
» 2015-06-25 21:12:56 gdzie taką opcje kompilacji w codeblocks dodać i jaką stronę kodową wpisać? utf-8 np? i wybaczcie za temat
edit: Wiem już gdzie ale utf-8 nic nie zmienia, jaką wpisać? |
|
Monika90 |
» 2015-06-25 21:22:15 A jakie masz kodowanie w pliku źródłowym? W Windows to pewnie jest cp1250 |
|
somas3k Temat założony przez niniejszego użytkownika |
» 2015-06-25 21:25:34 Wpisanie tej strony kodowej zadziałało, dzięki wielkie :D |
|
« 1 » |