cCCwhite 2019-05-07 17:18 采纳率: 0%
浏览 3234

C++程序,关于strcpy_s使用报错(新手初学,虚心请教)

strcpy_s或是strcpy都尝试过,
前者报错 error C2065: 'strcpy_s' : undeclared identifier
后者报错 error C2660: 'strcpy' : function does not take 3 parameters
全程序

#include<iostream>
#include<cstring>
using namespace std;
class Name
{
    public:
        Name(char *pn);
        Name(const Name &Obj);
        ~Name();
        void setName(char*);
        void showName();
    protected:
        char *pName;
        int size;
};
Name::Name(char *pn)
{
    cout<<"Constructibng"<<pn<<endl;
    pName=new char[strlen(pn)+1];
    if(pName!=0)    strcpy_s(pName,strlen(pn)+1,pn);
    size=strlen(pn);
}
Name::Name(const Name& Obj)
{
    cout<<"Copying"<<Obj.pName<<"into its own block\n";
    pName=new char[strlen(Obj.pName)+1];
    if(pName!=0)    strcpy_s(pName,strlen(Obj.pName)+1,Obj.pName);
    size=Obj.size;
}
Name::~Name()
{
    cout<<"Destructing"<<pName<<endl;
    pName[0]='\0';
    delete  []pName;
    pName=NULL;
    size=0;
}
void Name::setName(char *pn)
{
    delete  []pName;
    pName=new char[strlen(pn)+1];
    if(pName!=0)    strcpy_s(pName,strlen(pn)+1,pn);
    size=strlen(pn);
}
void Name::showName()
{
    cout<<pName<<endl;
}
int main()
{
    Name Obj1("NoName");
    Name Obj2=Obj1;
    Obj1.showName();
    Obj2.showName();
    Obj1.setName("sudongpo");
    Obj2.setName("dufu");
    Obj1.showName();
    Obj2.showName();
}

使用软件为 Visual C++ 6.0

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-05-07 17:26
    关注

    VC6.0不支持strcpy_s,
    strcpy_s(pName,strlen(pn)+1,pn);
    修改为
    strcpy(pName,+1,pn);

    或者换vc++ 2010或者以上

    评论

报告相同问题?

悬赏问题

  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法