繁体   English   中英

时间:2019-05-06 标签:c++strcpySIGINT错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM