c++ strcpy SIGINT error

c++ strcpy SIGINT error

本文关键字:error SIGINT strcpy c++      更新时间:2023-10-16

我是一名学生,正在学习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++最令人惊奇的事情之一是标准库,它解决了所有这些繁琐的代码问题。考虑将bookName替换为std::string:

#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表示从键盘中断。

我建议将您的IDE更改为Visual Studio或NetBeans与c++。

而且,老实说,这是带有类的C语言,而不是c++。

相关文章: