Я новичок в C ++.
Я знаю, что wchar_t — широкий символ.
Что не так в следующем коде ?? Разве я не включил соответствующую библиотеку ??
#include<iostream.h>
#include<conio.h>
void main()
{
wchar_t *s=L"Hello, World";
cout<<s;
getch();
}
Просто перестаньте использовать 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)
Ряд проблем здесь, хотя все довольно незначительно:
#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, это может вас не беспокоить.