Je suis habitué aux commandes de paramètres PHP fwrite/fread, et je veux les rendre identiques en C++ aussi. Je veux que cela fonctionne avec les types de caractères et de chaînes de caractères, ainsi qu'avec tous les types de données que je mets dedans (seulement si la longueur est définie).surcharge de la fonction C++, rendant fwrite/fread agir comme les versions de PHP
Je suis Noob totale sur C++, c'est ce que je l'ai fait jusqu'à présent: Edit: fixe la 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);
}
}
Si ce travail très bien? Et comment cela devrait-il être fait si je voulais le faire de la meilleure façon possible?
La meilleure façon possible est d'utiliser C++ au lieu d'essayer de recréer php. Redéfinir les fonctions standard pour prendre des arguments différents est une recette pour les bugs et la confusion. –