为什么我在这个 C++ 程序中遇到编译时错误?

为什么我在这个 C++ 程序中遇到编译时错误?

nano something.cpp我是 Ubuntu 及其终端的新手。我首先尝试使用通用的“Hello World”程序编写 C++ 代码。

iostream.h首先,我遇到了一些关于和无法识别的错误cout。我在网上搜索后发现,这是一个较新的 C++,我们必须使用iostream而不是iostream.hstd::cout而不是cout。进行这些更改后,它运行良好(使用 gcc 编译)。

现在我尝试创建第二个程序。在这里我必须输入我的名字,它会显示“Hello Myname”。

代码如下:

#include <string>
#include <iostream>
int main()
{
  string g;
  std::cout << "What is your name?\n";
  std::cin >> g;
  std::cout << "Hello\n" << g << std::endl;
  return 0;
}

当我尝试编译(使用gcc myprog.cpp -o hello)时;出现以下错误:

prog.cpp: In function ‘int main()’:
prog.cpp:5:1: error: ‘string’ was not declared in this scope
prog.cpp:5:1: note: suggested alternative:
/usr/include/c++/4.6/bits/stringfwd.h:65:33: note:   ‘std::string’
prog.cpp:5:8: error: expected ‘;’ before ‘g’
prog.cpp:7:13: error: ‘g’ was not declared in this scope

我搜索了网络,但没有找到任何帮助。我该如何摆脱这些错误?

如果有人能向我推荐一本关于“较新的” C++ 的书,我也会很高兴。

答案1

首先使用g++进行编译,其次你忘记了字符串 的命名空间限定符g。尝试std::string g;。然后用 进行编译g++ myprog.cpp -o hello

相关内容