gpt4 book ai didi

C++ 程序在使用字符串时给出运行时错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:10 26 4
gpt4 key购买 nike

#include <iostream> 
#include <string.h>
using namespace std;

int main ()
{
string st = "Hello world";
return 0;
}

#include <string> 
int main ()
{
std::string st = "Hello world";
return 0;
}

我尝试在 netbeans 上使用 minGW 编译器编译这段代码。构建成功后报如下错误。

运行失败(退出值-1,073,741,511,总耗时:93ms)

但是当不使用字符串时,它可以正常工作。我想知道我在这里做错了什么。提前致谢。

最佳答案

使用c++字符串,不要使用using namespace std :

#include <string> //c++ string header

int main ()
{
std::string st = "Hello world";
return 0;
}

#include <string.h> 是旧的 C 风格字符串 header ,很可能不是您想在此处使用的。有关详细信息,请参阅此问题:Difference between <string> and <string.h>?

注意:如果你真的想要旧的 C 风格字符串,那么你真的应该使用 #include <cstring>因为这会将这些函数放入 std命名空间,不会造成任何可能导致其他不良结果的命名空间污染。

可能发生的情况是您使用了旧式字符串 header 并且没有正确初始化这些字符串。旧的 C 风格字符串没有像 std::string 那样定义的构造函数和 operator=。类。

编辑:查看 Netbeans 论坛后,这是 Netbeans 的问题,而不是 C++ 问题。尝试将输出更改为 Netbeans 中的外部终端。或者直接从命令行运行程序。如果这些方法不能解决问题或不受欢迎,请在 Netbeans 论坛上发帖。也看看这个问题:Program won't run in NetBeans, but runs on the command line!

关于C++ 程序在使用字符串时给出运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24468868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com