我试图实现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中排除了很多代码,这无关紧要。
strcpy
和strncpy
都在cstring
标头中声明。您需要包含它才能使用以下功能:
#include <cstring>
使用std::strcpy();将解决您的问题。
有两种方法可以解决这个问题,一种是包含适当的标头#include <cstring>
,另一种是将std::
放在函数前面。
此外,我注意到您编写的strNcpy
可能会导致语法错误。