2015-06-21 15 views
5

Próbuję wydrukować język malajalam (język południowo-indyjski) jako wyjście programu c/C++, ale pokazuje on nieznane znaki zarówno w terminalu, jak iw interfejsie użytkownika przy użyciu WINAPI.Jak wydrukować malajalam jako wyjście programu c/C++?

(Plik „malayalam.txt” zawierają pewne malajalam słów.)

#include <stdio.h> 
#include <windows.h> 

main() { 
    char s[100]; 
    FILE *fp; 
    fp = fopen("malayalam.txt", "r"); 
    if (fp == NULL) { 
     puts("Cannot open file"); 
    } 
    while (fgets(s, 100, fp) != NULL) { 
     printf("%s", s); 
     MessageBox(NULL, s, "Malayalam", MB_OK); 
    } 
    fclose(fp); 
} 
+2

Proszę użyć odpowiednich tagów, także nie ma c/C++ to c lub C++. A rozwiązanie zależy od tego, że musisz również opublikować swoje próby. –

+1

Pokaż kod, o którym mówisz. Trudno zrozumieć, o co prosisz. –

+3

http://www.cprogramming.com/tutorial/unicode.html – Steephen

Odpowiedz

4

przykład z poniższego linku może pomóc rozwiązać ten problem dla WINAPI.

Trzeba znaleźć odpowiednik unicode swojego słowa malajalam w pliku .txt można przekonwertować go stąd http://www.aksharangal.com

Przykład z poniższej stronie http://harikrishnanvs.blogspot.in/2011/12/printing-malayalam-as-c-program-output.html

programu WIN32 wydrukować moje imię w języku malajalam - MessageBox

To działa na Windows 7, ale nie działa w XP Tworzenie nowego projektu w visual studio 2010. File -> New -> Project -> Win32 Nazwa projektu projekt kliknij OK Zakończ

zawierają pliki nagłówkowe stdafx.h, tchar.h.

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, PSTR szCommandline,int iCmdshow) 
{ 
    TCHAR c[4]; 
    c[0]=3385; 
    c[1]=3376; 
    c[2]=3391; 
    c[3]='\0'; 
    TCHAR szbuffer[100]; 

    _stprintf(szbuffer,_T("%ls"),c); 
    MessageBox(NULL,szbuffer,TEXT("HELLO ALL"),0); 
    return 0; 
} 

Upewnij się, że Właściwości konfiguracji ---> Zestaw znaków ---> Użyj opcji Zestaw znaków Unicode jest zaznaczony.

+1

'TCHAR' zamiast tego powinien być' WCHAR' lub 'wchar_t'. '_stprintf' powinno być' _swprintf'. 'MessageBox' powinno być' MessageBoxW'. – IInspectable