Я привык к порядку параметров fwrite / fread в PHP и хочу сделать их такими же в C ++
тоже.
Я хочу, чтобы он работал с типами char и string, а также с любым типом данных, который я в него вставил (только если определена длина).
Я полный нуб на C ++, это то, что я сделал до сих пор:
Редактировать: исправлено std :: string & buf
size_t fwrite(FILE *fp, const std::string &buf, const size_t len = SIZE_MAX){
if(len == SIZE_MAX){
return fwrite(buf.c_str(), 1, buf.length(), fp);
}else{
return fwrite(buf.c_str(), 1, len, fp);
}
}
size_t fwrite(FILE *fp, const void *buf, const size_t len = SIZE_MAX){
if(len == SIZE_MAX){
return fwrite((const char *)buf, 1, strlen((const char *)buf), fp);
}else{
return fwrite(buf, 1, len, fp);
}
}
Должно ли это работать нормально? И как это сделать, если я хочу сделать это как можно лучше?