c ++ strcpy SIGINT错误

时间:2016-10-13 03:14:01

标签: c++

我是学生,我正在学习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错误。当我运行它时,它会停止运行。

2 个答案:

答案 0 :(得分:0)

关于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";

一样简单

答案 1 :(得分:0)

您的代码在我的PC上按预期工作,因此,代码不是问题,您的编译器和/或IDE在此处有错误。

查看hereSIGINT表示键盘中断。

我建议您将IDE更改为Visual Studio或使用C ++的NetBeans。

另外,老实说这是C语言,而不是C ++。