1

PDcursesがいくつかの記号を?として表示することに問題があります。適切な文字の代わりに。コードページ437を表示して、どのシンボルが機能していて、どのシンボルが機能していないかを判断するための小さなテストプログラムを作成しました。

不思議なことに、PDcursesをオフにすると、問題のシンボルが正しく表示されます。

問題の記号は、ÇéâäàåçêëèïîÄæÆôöòûùÿÖÜ¢£₧ƒ</p>です。

これは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;
}

これは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;
}

Windows XP Service Pack 3を実行していて、Microsoft Visual C ++2010Expressを使用しています

4

2 に答える 2

2

私は戻ってきて、しばらくしてこれを解決しました。間違ったバージョンのPDcursesを使用していたことが判明しました。利用可能なものからhttp://sourceforge.net/projects/pdcurses/files/pdcurses/3.4/私はpdc34dllwを使用していました。pdc34dllに切り替えたところ、完全に機能するようになりました。

于 2011-02-03T18:39:13.353 に答える
0

2番目の例でcをintではなくcharにするとどうなりますか?

于 2010-12-05T14:33:33.897 に答える