wchar t — C ++ ошибка wchar_t не определена

Я новичок в C ++.

Я знаю, что wchar_t — широкий символ.

Что не так в следующем коде ?? Разве я не включил соответствующую библиотеку ??

#include<iostream.h>
#include<conio.h>
void main()
{
wchar_t *s=L"Hello, World";
cout<<s;
getch();
}

3

Решение

Просто перестаньте использовать Borland Turbo C — он был старым, когда я впервые взял версию 3.1 почти 20 лет назад. Turbo C той эпохи не имеет файла iostream (без расширения), потому что он был выпущен за время до появления stl. До этого функции действительно находились в iostream.h

Таким образом, я ожидаю, что он также не определил wchar_t — я даже не помню, существовал ли тогда многобайтовый контент, конечно, unicode не рассматривался …

Что бы это ни стоило, у меня все еще есть копия Turbo C на 5 1/4 «дискетах — да! Флоппи-дискеты … Получите компилятор этого века!

Получить Code :: Blocks с MinGW (загрузка ~ 70MB) или Visual Studio Express (пара сотен), черт возьми — даже DevCpp менее архаичен, чем Turbo C.

(О, и вы указали мне, что, скорее всего, ваш компилятор предпочтителен благодаря включению conio.h)

3

Другие решения

Ряд проблем здесь, хотя все довольно незначительно:

#include<iostream.h>

Это должно быть #include <iostream> Стандартные заголовки C ++ не имеют .h в конце.

void main()

main должен вернуть intне void,

wchar_t *s=L"Hello, World";
cout<<s;

Чтобы написать широкую строку, вы хотите использовать wcout, который находится в std пространство имен, так что это должно выглядеть так:

std::wcout << s;

Обратите внимание, что getch:

getch();

… распространено, но технически не стандартно, поэтому вы не можете использовать его в действительно переносимом коде. Если вы заботитесь только о Windows, это может вас не беспокоить.

2

По вопросам рекламы [email protected]