没有重载函数“strcpy_s”的实例匹配参数列表

出于某种原因,字符不能在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 ,要容易得多。