STRCPY是未定义的c++



我试图实现strcpy或strncpy,但无论我使用哪一个,两者都显示出错误。

错误仅在strncpy和strcpy 下出现

第.cpp项:

#include "Item.h"
#include <iomanip>
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
#include "Date.h"
#include "POS.h"
#include "PosIO.h"
namespace sict {
    Item::Item(){
         _name = '';
         _price = 0;
         _taxed ='0';
         _quantity = '';
    }
    Item::Item(const char* sku,  const char * name, double price, bool taxed){
        strNcpy(_sku, sku, MAX_SKU_LEN);
         name = new char[20];
        strcpy(_name, name);
        _quantity = 0;
        price = _price;
        if (price = '') {
            _taxed = true;
        }
    }
    void Item::sku(const char* value){
        strncpy(_sku, value);
    }
    void Item::price(double p){
        p = _price;
    }
    void Item::name(const char * n){
        strcpy(_name, n);
    }

}

关于如何修复它,我从item.cpp中排除了很多代码,这无关紧要。

strcpystrncpy都在cstring标头中声明。您需要包含它才能使用以下功能:

#include <cstring>

使用std::strcpy();将解决您的问题。

有两种方法可以解决这个问题,一种是包含适当的标头#include <cstring>,另一种是将std::放在函数前面。

此外,我注意到您编写的strNcpy可能会导致语法错误。

相关内容

  • 没有找到相关文章

最新更新