我目前正在尝试在C中创建一个应用程序作为学校的作业,我的教授要求我使用以下内容使其与他的编译器兼容:
#pragma warning(disable: 4996)
#include<string>
#include<stdlib.h>
#include<time.h>
(我正在使用visual studio)
由于某种原因,#include <string>
会引发一系列运行时错误,主要包括问题标题中的错误。它出现在一堆其他依赖项中,包括cmath,cstudio,cstdlib,cstring等。所以最重要的是,有人能告诉我如何修复它吗?谢谢!
答案 0 :(得分:1)
您包含C ++头文件。使用#include <string.h>
答案 1 :(得分:1)
#include <string>
是C ++头文件,因此与C不兼容。
正如其他人所建议的那样,您可以将其更改为#include <string.h>
,以便您拥有有效的C标头,但是如果您的教授断言您使用了特定的标头集,那么您需要将源文件更改为.ccp文件而不是.c文件。
答案 2 :(得分:0)
您在C代码中包含了一个C ++库。没有任何扩展名的头文件是C ++头文件。拥有&#34; .h&#34;扩展名是C头文件。 C ++也接受C头文件仍然没有扩展名。他们给出了相同的名字&#34; c&#34;前缀,没有&#34; .h&#34;扩展
例如
<string>
是一个C ++标题
<string.h>
是C标头
<cstring>
是C头但是在C ++代码中。
答案 3 :(得分:0)
在Visual Studio中,如果扩展名为'.c',则会出现此错误。VSStudio将假定文件的类型为c,而不是c ++,并使用c编译器而不是c ++。
在项目设置的高级选项下,您可以选择“编译为C ++”,然后将文件全部编译为C ++。如果向下滚动,则会在命令行中找到添加到其中的标志“ -x”。
如果您使用的是gcc编译器,则与在编译器命令“ -x c ++”中添加以下内容相同
检查gcc参考以获取该标志。