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