出于某种原因,字符不能在strcopy_s(); …
#include <iostream> #include <cstring> using namespace std; struct DATE { int year; int month; int date; }; struct Book { char name[50]; char author[50]; int id; DATE date; }; int main() { Book book1; DATE date1; char bookName, bookAuthor; int date, year, month; cout << "Date Of Publishing? " << endl; cin >> date; cout << "Month Of Publishing?" << endl; cin >> month; cout << "Year Of Publishing?" << endl; cin >> year; date1.year = year; date1.month = month; date1.date = date; cout << "Book Name ? " << endl; cin >> bookName; cout << "Book Author" << endl; cin >> bookAuthor; strcpy_s(book1.name, bookName); strcpy_s(book1.author, bookAuthor); return 0; }
给我错误:
Severity Code Description Project File Line Suppression State Error (active) no instance of overloaded function "strcpy_s" matches the argument list Struct c:\Users\Amanuel\Documents\Visual Studio 2015\Projects\Struct\Struct\Source.cpp 38 Severity Code Description Project File Line Suppression State Error (active) no instance of overloaded function "strcpy_s" matches the argument list Struct c:\Users\Amanuel\Documents\Visual Studio 2015\Projects\Struct\Struct\Source.cpp 39 Severity Code Description Project File Line Suppression State Error C2665 'strcpy_s': none of the 2 overloads could convert all the argument types Struct c:\users\amanuel\documents\visual studio 2015\projects\struct\struct\source.cpp 38 Severity Code Description Project File Line Suppression State Error C2665 'strcpy_s': none of the 2 overloads could convert all the argument types Struct c:\users\amanuel\documents\visual studio 2015\projects\struct\struct\source.cpp 39
正确。 strcpy
及其家族采取char*
,而不是char
。 他们使用C字符串。 而且,通常不能将bookName
放入单个字符中。
这就是说,欢迎来到21世纪。 我们现在使用std::string
,要容易得多。