为什么赢了';这不是简单的C++;程序编译? 这是我非常简单的C++函数: #include <string.h> void myFunc(void * param) { string command; } 是C,定义了C字符串处理函数,如代码> MeMCPMP < /C>和 StrcPy < /C> >,而不是C++类字符串< />。在标准C++中,标题是“代码> ,类字符串命名空间 STD < < /P> < P>它没有编译,确切地说,原因是: Error: string is not defined.

为什么赢了';这不是简单的C++;程序编译? 这是我非常简单的C++函数: #include <string.h> void myFunc(void * param) { string command; } 是C,定义了C字符串处理函数,如代码> MeMCPMP < /C>和 StrcPy < /C> >,而不是C++类字符串< />。在标准C++中,标题是“代码> ,类字符串命名空间 STD < < /P> < P>它没有编译,确切地说,原因是: Error: string is not defined.,c++,C++,将更改为 还要确保使用了正确的命名空间。您可以通过以下方式完成此操作: using std::string; 或 更多解释: 用于C中的C字符串 >代码> 是C++中的C字符串。 代码> 是C++ >代码> STD::String 尽管有名称,但在标题中没有定义名称为“string”的实体。您很可能希望#包括,并使用std::string命令而不是string命令。我也要确保CC是C++编译器而不是C编译器。为什么使用一个定义良好的应答器,它是一个非常好的问题,假设代码> %TestF

更改为

还要确保使用了正确的命名空间。您可以通过以下方式完成此操作:

using std::string;


更多解释:

  • 用于C中的C字符串
  • >代码> <代码>是C++中的C字符串。 代码> <代码>是C++ >代码> STD::String
尽管有名称,但在
标题中没有定义名称为
“string”
的实体。您很可能希望
#包括
,并使用
std::string命令
而不是
string命令
。我也要确保CC是C++编译器而不是C编译器。为什么使用一个定义良好的应答器,它是一个非常好的问题,假设<>代码> %TestFUNC.C.<代码>是用来显示源文件的命令。如果是这样的话,这不是计划的一部分,在这里也不相关。我不在乎你是使用Windows
类型
还是Unix
cat
更多
更少
或其他什么工具。@pm100我没有投反对票,但“这段代码为什么不能编译”的问题通常不好。他会得到他的答案,但它“太本地化了”,不太可能帮助未来的访问者。要么在包含后加上“使用std::string”,要么用“std::string”代替“string”
std::string
使用std::string,而不是
 > @ YAKK:你是在使用C++编译器还是使用C编译器?编译,现在工作。- 1:标准C++(不推荐它在或之上)@ ToMaseTe:好捕获。我脑子里的那个标题是固定的。我想你在开头有一个额外的“and:-)@UpAndAdam::叹气:老兄,我完全搞砸了:)事实上它是一个缺失的“is”-现在固定了。谢谢别担心!我想你带着这个去了什么地方,不想编辑我自己。
using std::string;
std::string command;