2015-06-21 14 views
5

Tôi đang cố gắng để in Malayalam (một ngôn ngữ Nam Ấn Độ) như đầu ra chương trình c/C++ nhưng nó cho thấy một số ký tự không quen thuộc cả trong thiết bị đầu cuối và trong giao diện người dùng bằng cách sử dụng WINAPI.Làm thế nào để in Malayalam dưới dạng đầu ra chương trình c/C++?

(Các tập tin "malayalam.txt" chứa một số từ Malayalam.)

#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

Vui lòng sử dụng các thẻ thích hợp, cũng không có c/C++ là c hoặc C++. Và giải pháp phụ thuộc vào điều đó, bạn phải đăng nỗ lực của bạn cho đến nay quá. –

+1

Hiển thị mã bạn đang nói. Vì nó là viết tắt của nó khó hiểu những gì bạn đang yêu cầu. –

+3

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

Trả lời

4

Ví dụ từ liên kết sau đây có thể giúp bạn khắc phục vấn đề này cho WINAPI.

Bạn cần phải tìm ra tương đương unicode của từ Malayalam của bạn trong file .txt bạn có thể chuyển đổi nó từ đây http://www.aksharangal.com

Một ví dụ từ trang sau http://harikrishnanvs.blogspot.in/2011/12/printing-malayalam-as-c-program-output.html

chương trình Win32 để in tên của tôi trong Malayalam - MessageBox

này hoạt động cho các cửa sổ 7, nhưng không làm việc trong XP Tạo dự án mới trong visual studio 2010. file -> New -> Project -> dự án Win32 Tên dự án bấm OK Hoàn

bao gồm tập tin tiêu đề 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; 
} 

Hãy đảm bảo rằng, Thuộc tính cấu hình ---> Ký tự đặt ---> Sử dụng tùy chọn Đặt ký tự Unicode được chọn.

+1

'TCHAR' phải là' WCHAR' hoặc 'wchar_t' thay thế. '_stprintf' phải là' _swprintf'. 'MessageBox' phải là' MessageBoxW'. – IInspectable

Các vấn đề liên quan