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