3

我是 C++ 新手。

我知道 wchar_t 是宽字符。

下面的代码有什么问题??我没有包括适当的图书馆吗?

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

2 回答 2

3

很简单,停止使用 Borland Turbo C - 大约 20 年前我第一次使用 3.1 版本时它已经过时了。那个时代的 Turbo C 没有 iostream(无扩展名)文件,因为它是在 stl 之前发布的。在此之前,确实在iostream.h中找到了这些函数

因此,我希望它也没有定义 wchar_t - 我什至不记得当时是否存在多字节的东西,unicode 当然不是考虑因素。

对于它的价值,我仍然在 5 1/4" 软盘上获得了 Turbo C 的副本 - 是的!软盘...获取本世纪的编译器!

使用 MinGW(约 70MB 下载)或 Visual Studio Express(数百)获取 Code::Blocks,地狱——即使 DevCpp 也没有 Turbo C 过时。

(哦,您已经向我表明,通过包含 conio.h,您极有可能选择编译器)

于 2012-11-04T03:03:22.187 回答
2

这里有很多问题,虽然都很小:

#include<iostream.h>

这应该是#include <iostream>标准 C++ 头文件末尾没有 a .h

void main()

main应该返回一个int,而不是void

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

要编写一个宽字符串,您要使用命名空间wcout中的std,所以它应该如下所示:

std::wcout << s;

请注意getch

getch();

... 很常见,但在技术上不是标准的,因此您不能在真正可移植的代码中使用它。但是,如果您只关心 Windows,那么您可能不必担心。

于 2012-11-04T02:21:58.977 回答