Dans mon code (enfin non celui d'un collegue), je concatene un buffer recu d'une connection TCP a une std::string
Code :
- std::string chaine;
- // ...
- chaine.append(rcv_buffer, rcv_len);
|
Ce buffer peut contenir un caractere '\0'. Pensez vous que c'est mal de faire un "append" ? Y a-t-il un "contrat" dans le standard C++ qui precise que le parametre "pointe vers un tableau avec des caracteres non nuls" ?
Deuxiemement question: si je fais un
Code :
- std::cout << chaine;
|
L'implementation differe entre Visual C++ et la libstdc++ (gcc). Le premier fait un
Code :
- std::cout << chaine.c_str();
|
Le deuxieme fait un
Code :
- std::cout.write(chaine.c_str(), chaine.size());
|
Si il y a un caractere nul, ca change tout (enfin si il est valide d'en mettre un). Quel est a votre avis le comportement standard ? Savez vous ou recuperer des infos sur ces points precis du standard ?
Message édité par kenshiro182 le 26-03-2003 à 12:04:42