簡體   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