2013-03-22 3 views
2

Здравствуйте, у меня есть ошибка в этой программе, которая является wcout, не является членом `std '. Также я использовал iostream, как вы видите, но не работал. У меня есть Dev-C++ 4.9.9.2, а моей операционной системой является XP SP3 Мне нужна ваша помощь. Спасибо за бесплатное время.C++ дает ошибку

#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; 
} 
+1

Вы пробовали более новую версию [dev-C++ с mingw] (http://sourceforge.net/projects/orwelldevcpp/files/Portable%20Releases/)? – greatwolf

+0

Я пробовал сейчас и такую ​​же проблему :( – thomas123

+0

Вы удалили старую версию сначала перед тем, как попробовать новую? Я только что протестировал ее, и она компилируется для меня отлично. – greatwolf

ответ

1

Dev-C++ 4.9.9.2, который вы используете, поставляется с MinGW-gcc 3.4.2, который равен 7+ years old, скорее всего, не имеет широкоугольных символов, которые поддерживаются в соответствии с предложением sftrabbit.

Если вы просматриваете оригинал Dev-C++ в sourceforge, вы увидите, что его заменил Orwell Dev-C++. Я бы предложил использовать это, если вам нужна поддержка с широким символом, поскольку она упаковывает гораздо более новую версию MinGW-gcc.

4

Если вы компилируете MinGW, wide characters are not yet supported. Если вам это действительно нужно, альтернативой является использование библиотеки STLPort в качестве альтернативы libstdC++.

+2

Забавные, как 'wcout', так и' wstring' работали столько, сколько я могу помнить с помощью моего MinGW. – chris

+0

@chris Возможно, это было недавно портирован, а искатель использует старую версию? Однако эта страница не была обновлена. –

+0

Возможно, я заметил, что часть сайта MinGW не поддерживается в прошлом. – chris

Смежные вопросы