wide character ( wchar_t ) - beyondnlp/nlp GitHub Wiki
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <wchar.h> #include <errno.h> #include <locale.h>
int main( int argc, char *argv[] ){
FILE *fp, *fw;
int wn = 0;
char buffer[1024];
wchar_t wbuffer[1024]={L'\0'};
if( argc != 3 ){
fprintf( stderr,"%s <utf file> <ucs file>\n" , argv[0] );
return 0;
}
fp = fopen( argv[1], "r");
fw = fopen( argv[2], "w");
while( fgets( buffer, 1024, fp ) != NULL ){
setlocale(LC_ALL, "");
if((wn = swprintf( wbuffer, 1023, L"%s", buffer )) < 0 ) return 0;
fwrite( wbuffer, sizeof(wchar_t), wn, fw );
}
fclose(fp);
fclose(fw);
return 0;
}
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <wchar.h> #include <errno.h> #include <locale.h>
int main( int argc, char *argv[] ){
FILE *fp, *fw;
int wn = 1, n;
char buffer[1024];
wchar_t wbuffer[1024]={L'\0'};
if( argc != 3 ){
fprintf( stderr,"%s <ucs file> <utf file>\n" , argv[0] );
return 0;
}
fp = fopen( argv[1], "r");
fw = fopen( argv[2], "w");
setlocale(LC_ALL, "");
while(wn > 0){
if((wn = fread( wbuffer, sizeof(wchar_t), 1024, fp )) > 0 ){
if((n = wcstombs( buffer, wbuffer, wn*3 )) == -1 ){
perror("error:");
};
fprintf( fw, buffer );
wbuffer[0]=L'\0';
}
}
fclose(fp);
fclose(fw);
return 0;
}