2

こんにちは私はこのプログラムでエラーが発生しました。wcoutは`std'のメンバーではありません。また、ご覧のとおりiostreamを使用しましたが、機能しませんでした。Dev-C++ 4.9.9.2を使用しており、オペレーティングシステムはXPSP3です。サポートが必要です。自由な時間をありがとう。

#include <iostream>
#include <cstring>
#include <cwchar>
using namespace std;
const wchar_t alphabet[] ={'A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'Ğ', 'H', 'I',
                        'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S',
                        'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z', '0', '1', '2', '3',
                        '4', '5', '6', '7', '8', '9', '.', ',', ':', ';', ' '};
const int char_num =44;

void cipher(wchar_t word[], int count, int key)
{
    int i = 0;
    while(i < count) {
        int ind = -1;
        while(alphabet[++ind] != word[i]) ;
        ind += key;
        if(ind >= char_num)
            ind -= char_num;
        word[i] = alphabet[ind];
        ++i;
    }
}

void decipher(wchar_t word[], int count, int key)
{
    int i = 0;
        while(i < count) {
        int ind = -1;
        while(alphabet[++ind] != word[i]) ;
        ind -= key;
        if(ind < 0)
            ind += char_num;
        word[i] = alphabet[ind];
        ++i;
    }
}

int main()
{
    wchar_t text[] = L"ABJT;";
    int len = wcslen(text);
    std::wcout << text << std::endl;
    cipher(text, len, 2);
    std::wcout << text << std::endl;
    decipher(text, len, 2);
    std::wcout << text << std::endl;
    return 0;
}
4

2 に答える 2

4

MinGWでコンパイルしている場合、ワイド文字はまだサポートされていません。本当に必要な場合は、libstdc++の代わりにSTLPortライブラリを使用することもできます。

于 2013-03-22T23:44:50.997 に答える
1

使用しているDev-C++4.9.9.2には7年以上前のMinGW-gcc3.4.2が付属しており、sftrabbitが提案するようにワイド文字が適切にサポートされていない可能性があります。

sourceforgeで元のDev-C++の上部を見ると、OrwellDev -C++に取って代わられていることがわかります。MinGW-gccのはるかに新しいバージョンがパッケージ化されているため、ワイド文字のサポートが必要な場合は、これを使用することをお勧めします。

于 2013-03-23T00:29:39.607 に答える