[英]c++ strcpy SIGINT error
我是一名学生,我正在学习 C++ 语言。
这是我的课;
class Book
{
private:
int location;
char bookNum;
char bookName[100];
}
我将通过构造函数设置字符串 bookName "DEFAULT"
#include "Bookclass.h"
using namespace std;
Book::Book()
:location(0), bookNum('0')
{
strcpy(bookName, "DEFAULT");
cout << "default constructor" << endl;
}
并且在构造函数中的 strcpy 上发生了错误。 当我使用调试器(Dev c++)时,它告诉我发生了 SIGINT 错误。 当我运行它时,它停止运行。
C++ 最令人惊奇的事情之一是标准库,它解决了所有这些繁琐的代码问题。 考虑用std::string
替换bookName
:
#include <string>
class Book
{
Book();
private:
int location;
char bookNum;
std::string bookName;
}
Book::Book()
:location(0), bookNum('0'), bookName("DEFAULT")
{
cout << "default constructor" << endl;
}
bookName
将在构造函数中设置为“DEFAULT”,重新分配它就像bookName = "new book name";
您的代码在我的 PC 上按预期工作,因此,代码不是问题,您的编译器和/或 IDE 有问题。
看这里, SIGINT
表示来自键盘的中断。
我建议使用 C++ 将您的 IDE 更改为 Visual Studio 或 NetBeans。
此外,老实说,这是带有类的 C,而不是 C++。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.