2010-12-05 8 views
1

Ich habe ein Problem mit PDcurses einige Symbole angezeigt als? anstelle des richtigen Charakters. Ich machte ein kleines Testprogramm, um die Codepage 437 anzuzeigen, um zu bestimmen, welche Symbole funktionierten und welche nicht.PDcurses Anzeige von Fragezeichen anstelle des beabsichtigten Zeichens

Seltsamerweise, wenn ich PDcurses deaktivierte die Problem Symbole korrekt angezeigt.

Die Problem Symbole sind ÇéâäàåçêëèïîÄæÆôöòûùÿÖÜ ¢ £ ₧ ƒ

Dies ist der Quellcode ohne PDcurses:

#include "stdafx.h" 
#include <curses.h> 
#include <iostream> 
#include <panel.h> 

using namespace std; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    //initscr(); 
    char c; 
    for (int a = 0; a < 16; a++) 
    { 
     for (int b = 1; b < 17; b++) 
     { 
      move(a, b - 1); 
      c = b + (a * 16) - 1; 
      //addrawch(c); 
      cout << c; 
     } 
     cout << "\n"; 
    } 
    //refresh(); 
    //getch(); 
    //endwin(); 
    return 0; 
} 

Dies ist der Quellcode mit PDcurses:

#include "stdafx.h" 
#include <curses.h> 
#include <iostream> 
#include <panel.h> 

using namespace std; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    initscr(); 
    int c; 
    for (int a = 0; a < 16; a++) 
    { 
     for (int b = 1; b < 17; b++) 
     { 
      move(a, b - 1); 
      c = b + (a * 16) - 1; 
      addrawch(c); 
      //cout << c; 
     } 
     //cout << "\n"; 
    } 
    refresh(); 
    getch(); 
    endwin(); 
    return 0; 
} 

Im Windows XP Service Pack 3 und Verwendung von Microsoft Visual C++ 2010 Express

Antwort

0

Was passiert, wenn Sie c eine char anstelle von int in Ihrem zweiten Beispiel machen?

+0

Wenn ich das tue, erscheint die Hälfte der Zeichen als graue Blöcke. Ich habe das behoben, indem ich einen Int anstelle eines Chars benutzt habe. – Diabl0658