gpt4 book ai didi

c++ - 在 cout << "hello"<< endl 中删除 endl 后,我的 C++ 程序停止工作

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:32 25 4
gpt4 key购买 nike

这是我的代码。这段代码可以很好地运行。但是当我删除“cout << “Hello world!” << endl;”中的“endl”时,它无法运行。 This is what I get when delete endl

#include <iostream>
#include <cstring>

using namespace std;
int main()
{
char * name;
char * n = "aaaa";
strcpy(name, n);
cout << name;
cout << "Hello world!" << endl;
return 0;
}

下面是删除endl的代码。

#include <iostream>
#include <cstring>

using namespace std;
int main()
{
char * name;
char * n = "aaaa";
strcpy(name, n);
cout << name;
cout << "Hello world!";
return 0;
}

最佳答案

让我们看一下这些行:

char * name;
char * n = "aaaa";
strcpy(name, n);

变量name 未初始化。它的内容不确定并且看起来是随机的。将其用作 strcpy 调用的目标将导致未定义的行为

如果你想使用 C 风格的字符串,你需要为 name 分配内存,例如使用数组:

char name[128];

但如果您实际上是在用 C++ 编程,为什么不使用标准库附带的很棒的类呢?例如 std::string非常擅长处理字符串的类:

#include <string>
#include <iostream>

int main()
{
std::string name;
std::string n = "aaaa";

name = n;

std::cout << name << '\n';
std::cout << "Hello world" << std::endl;
}

关于c++ - 在 cout << "hello"<< endl 中删除 endl 后,我的 C++ 程序停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524810/

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