1
我在輸入「標題」和「作者」的行上出現錯誤。我不太確定該如何解決這個問題。枚舉數據和向量錯誤:表達式必須是可修改的左值
struct bookStruct
{
char title[40];
char author[40];
int pages;
int year;
};
enum menu { display=1, add, end} ;
void displayOptions();
void displayBooks();
int main(){
vector<bookStruct> book(11);
string option;
book[0].title = "a";
book[0].author = "b";
book[0].pages = 23;
book[0].year = 21;
displayOptions();
cin >> option;
displayBooks(book);
return 0;
}
謝謝。我使用char數組的唯一原因是因爲這是賦值所指定的。 – user2105982 2013-04-04 11:00:39
@ user2105982:如果您必須使用數組,請確保使用'strncpy',或者在複製之前自行檢查長度。如果你正在複製的字符串比目標數組長,那麼'strcpy'會壓遍所有內存,導致可怕的錯誤。 – 2013-04-04 11:39:14
@MikeSeymour另一方面,'strncpy'可能不會添加終止的''\ 0''字符,所以它也很危險。 – 2013-04-04 11:41:08