if ( buffer == "false" )
if ( strcmp( buffer , "false" ) == 0 )
Quand je laissais paraître "buffer", j'avais bien "false" et non une adresse pointeur
printf("%s", buffer); // Affichera la chaîne de caractère "false" printf("%i", buffer); // Affichera une adresse en décimal printf("%x", buffer); // Affichera une adresse en hexadécimal
if (buffer == "false")
{
cout << endl << "function returns : false" << endl;
return false;
}
else
{
return true;
}
if (std::string(buffer) "false") // ou plus simplement strcmp(buffer, "false") 0, comme dit précédemment. { std::cout << std::endl << "function returns : false" << std::endl; return false; } return true;
const bool res = std::string(buffer) != "false"; std::cout << std::endl << "function returns : " << std::boolalpha << res << std::endl; return res;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questioncout << buffer << endl;
En fait, "buffer" me retournait "false" quand en effet, j'ai tout simplement fait :
std::cout << buffer << std::endl;
char buffer[] = "false"; int p buffer; // Pour simplifier, en vrai il faudrait plutôt écrire: int p static_cast(buffer); Mais oublie pour l'instant. std::cout << "p 0x" << p << " buffer " << buffer << std::endl; // Affichera p 0x4567981 (autre valeur chez toi et différente à chaque lancement) et buffer false" // Pourtant p et buffer sont identiques.