C++ Don';无法理解VS中HelloWorld上的错误(当Stroustrup和x27中包含std#U库时);书

C++ Don';无法理解VS中HelloWorld上的错误(当Stroustrup和x27中包含std#U库时);书,c++,visual-studio,visual-c++,C++,Visual Studio,Visual C++,我包括了Stroustrup网站上的std_库 我的代码是: #include "c:\Users\theresmineusername\Documents\Visual Studio 2017\std_lib_facilities.h" int main() { cout << "Hello, World!\n"; return 0; } #包括“c:\Users\TheResimeneUserName\Documents\Visual Studio 2017\

我包括了Stroustrup网站上的std_库 我的代码是:

#include "c:\Users\theresmineusername\Documents\Visual Studio 2017\std_lib_facilities.h"

int main()
{
    cout << "Hello, World!\n";
    return 0;
}
#包括“c:\Users\TheResimeneUserName\Documents\Visual Studio 2017\std_lib_facilities.h”
int main()
{

C++P>在C++中编写的习惯用法是:

#include <iostream>

int main() {
    std::cout << "Hello World!\n";
}
#包括
int main(){

STD::CUT< P>代码> STDYLIBU.Studio.H./Cuth>是StruouTutp自己编写的一个头文件,它是“强”>不是标准的C++标题[/Stordy],但显然反映了Stroustrup在最初几周内甚至隐藏了来自初学者的语言最简单的复杂性的想法。 正如头文件本身所说:

此标题主要用于使您不必理解 每一个概念都是同时出现的

我个人认为这是一个非常糟糕的主意,我要对比亚恩·斯特劳斯特普表示应有的尊重,他是一个比我所期望的更伟大的天才

头文件中充满了被认为是糟糕的编程风格的东西(尤其是
使用名称空间std;
,它不应该在头文件的全局范围内使用,或者从标准容器类派生)。它还迎合了可能还不支持某些“更新”的过时编译器C++的特性正确,使用了很多丑陋的预处理器指令。 看起来头文件本身已经过时了(我链接的头文件已经有7年了),我不确定Stroustrup是否更新过它

其中一个预处理器指令使编译器错误地包含了
,而它应该是
。当然,这是荒谬的,因为您的程序只想打印hello world消息,而对哈希映射甚至都不感兴趣

下面是您的程序在correctC++中的外观:

#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
    return 0;
}

到时候,把它和
#include
用于
std#u lib_facilities.h

1)的
#include一起扔掉。将错误复制并粘贴到问题中作为文本。不要使用错误消息的截图。2.)我不认为Stroustrup教授错误的标题用法。你必须使用
#include
,然后说
std::cout>
而不是
cout
。仔细观察,我发现Stroustrup确实在他的书中使用了如此糟糕的头文件,包括一个丑陋的
使用名称空间std;
。这是一种非常奇怪的教学风格,因为它教给你很多你以后必须改掉的坏习惯。@christian hackl明白了!更新的问题。在开头检查第二条消息“您可以定义\u静默\u索引\u哈希\u弃用\u警告,以确认您已收到此警告。”我删除了我的反对票,将我的反对票改为赞成票,因为这对初学者来说是一个公平的问题,并且准确地描述了许多初学者可能遇到的问题。这是真的。但在这种情况下,通常在阅读中失去了一个特定的点,因为它在Stroustrup的书中有很大一部分使用。吹毛求疵:
return 0;
from
main()
不是必需的。@πάνταῥεῖ: 我在代码片段的正下方这么说!:)啊,一眼就看不出来。这是工作。谢谢。我在
\include..
之后添加
\define…
时仍然是一个错误,但在这种情况下(相反地),一切都很好。
#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
    return 0;
}
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include "c:\Users\theresmineusername\Documents\Visual Studio 2017\std_lib_facilities.h"

int main()
{
    cout << "Hello, World!\n";
    return 0;
}