
c++ string.h中函数strcpy_s问题
#include<iostream>#include<string>usingnamespacestd;classB{public:B(){cout<<"default\...
#include<iostream>
#include<string>
using namespace std;
class B
{
public:
B()
{cout<<"default\n";}
B(char *s,double n)
{
strcpy_s(name,s);
b=n;
cout<<"constructor\n";}
~B()
{cout<<"destructor "<<name<<endl;}
void getb(char *s,double &n)
{
strcpy_s(s,name);//此处出现error c2660:"strcpy_s":函数不接受2个参数
n=b;
}
private:
char name[80];
double b;
};
void main()
{B *pb;
double n;
char s[80];
pb=new B[3];
pb[0]=B("wang",4.6);
pb[1]=B("zhang",2.9);
pb[2]=B("li",8.2);
for(int i=0;i<3;i++)
{
pb[i].getb(s,n);
cout<<s<<","<<n<<endl;
}
delete[]pb;
}
调试出现如上error c2660:"strcpy_s":函数不接受2个参数错误求解。 展开
#include<string>
using namespace std;
class B
{
public:
B()
{cout<<"default\n";}
B(char *s,double n)
{
strcpy_s(name,s);
b=n;
cout<<"constructor\n";}
~B()
{cout<<"destructor "<<name<<endl;}
void getb(char *s,double &n)
{
strcpy_s(s,name);//此处出现error c2660:"strcpy_s":函数不接受2个参数
n=b;
}
private:
char name[80];
double b;
};
void main()
{B *pb;
double n;
char s[80];
pb=new B[3];
pb[0]=B("wang",4.6);
pb[1]=B("zhang",2.9);
pb[2]=B("li",8.2);
for(int i=0;i<3;i++)
{
pb[i].getb(s,n);
cout<<s<<","<<n<<endl;
}
delete[]pb;
}
调试出现如上error c2660:"strcpy_s":函数不接受2个参数错误求解。 展开
2个回答
展开全部
strcpy_s函数有3个参数,第2个是要复制的长度,
strcpy_s(s,name)在S和NAME中间添加要复制的长度。
strcpy_s是微软为了安全性考虑自己添加的函数,和strcpy不同。
strcpy_s(s,name)在S和NAME中间添加要复制的长度。
strcpy_s是微软为了安全性考虑自己添加的函数,和strcpy不同。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询