CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème C++

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 18:57:28

Bonjour.

Je veux tester si la variable de type char "reponse" est égale à "oui".
Voici ma syntaxe:
if (strcmp(reponse,"oui")==0)
Le compilateur me dit: "invalid conversion from ´char´ to ´const char´"
Pouvez-vous m´aider :svp: ?

iunity
iunity
Niveau 5
27 octobre 2005 à 20:19:41

Et pourquoi ne pas faire if(reponse=="oui") ?

LGV
LGV
Niveau 28
27 octobre 2005 à 20:24:51

iunity : parce que c´est une abberation sans nom

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strcmp.2c_.wcscmp.2c_._mbscmp.asp

je ne pense pas que ce soit un pb de const_cast vu que non-const > const doit se faire de maniere transparente (sauf finesses particulieres, genre avec operateur de conversion redefinis).
je pense que "reponse" et declare comme un char, et non un char *

paste le code pour qu´on en assure.

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 20:59:45

Voilà le code:

  1. include <iostream>
  2. include <fstream>
  3. include <stdlib.h>
  4. include <windows.h>

using namespace std;

int main()
{
char titre[20];
char description[150];
char auteur[20];
char header[50];
char corps[1000];
char reponse;

int acc_e1;
int acc_e2;
int acc_a;
int acc_o;
int acc_u;

acc_e1=130;
acc_e2=138;
acc_a=133;
acc_o=226;
acc_u=151;

cout << "Bonjour je suis un cr" << (char)acc_e1 << "ateur de pages persos.";
Sleep(2500);
cout << endl;
cout << "Avec les informations que tu vas me donner, je vais programmer une page appel" << (char)acc_e1 << "e \"index.html\".";
Sleep(2500);
cout << endl << endl << "Quel est le nom de l´auteur de la page?";
Sleep(1000);
cout << endl;
cin >> auteur;
Sleep(500);
cout << endl << "Donne une description de la page:";
Sleep(1000);
cout << endl;
cin >> description;
Sleep(500);
cout << endl << "Quel est le titre de ta page?";
Sleep(1000);
cout << endl;
cin >> titre;
Sleep(500);
cout << endl << "Veux-tu mettre une banni" << (char)acc_e2 << "re (800*150px) ?" ;
Sleep(1000);
cout << endl;
cin >> reponse;
Sleep(500);
if (strcmp(reponse,"oui")==0)
{
cout << endl << "Tu dois la mettre dans le dossier o" << (char)acc_u << " je suis plac" << (char)acc_e1 << "...";
Sleep(1000);
cout << endl << "Quel est son nom?";
Sleep(1000);
cout << endl;
cin >> header;
Sleep(500);
}
cout << endl << "Maintenant, " << (char)acc_e1 << "cris le contenu de ta page:";
Sleep(1000);
cout << endl;
cin >> corps;
Sleep(4000);
cout << endl << endl << "Voil" << (char)acc_a << ", ta page est finie, elle se trouve " << (char)acc_a << " c" << (char)acc_o << "t" << (char)acc_e1 << " de moi.";
Sleep(10000);

ofstream f("index.html");
f << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">";

f << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">";
f << "<head>";
f << "<link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"code by Manin25\" href=\"style.css\">";
f << "<title>" << titre << "</title>";
f << "<meta name=\"description\" content=\"" << description << "\">";
f << "<meta name=\"author\" content=\"" << auteur << "\">";
f << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
f << "</head>";
f << "<body>";
f << "<div id=\"header\">";
if (strcmp(reponse,"oui")==0)
f << "<img src=\"" << header << "\">";
else
{
f << "<center><b>";
f << "<font size=\"20\"><br>" << titre << "</font>";
f << "</b></center>";
}
f << "</div>";
f << "<div id=\"corps\">" << corps << "</div><br />";
f << "<div id=\"footer\">";
f << "© {nom de votre site}<!--Merci de laisser ce Copyright--> ==>Codes by Manin25<==";
f << "</div>";

f << "</body>";
f << "</html>";

f.close;

cout << "By pedrolan and Manin25";
Sleep(1000);
return 0;
}

dnob700
dnob700
Niveau 10
27 octobre 2005 à 21:11:21

Oui, c´est bien ce qu´a dit LGV.

ta variable reponse est declaré : char reponse et non pas:
char reponse[100]; //par exemple.

Par contre, vu que tu utilise <iostream<, tu pourrait utiliser aussi <string> ce qui te permettrait d´utiliser des variables string :
string reponse;

avec lesquelles tu peut effectivement faire :
if (reponse=="oui")

(si ça marche pas, il faut faire :
string oui("oui");
if (reponse==oui))

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 21:15:21

:merci:

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 21:20:58

Mais pour exactement le même code en corrigeant la faute, le compilateur me dit "statement cannot resolve adress of overloaded function"...

dnob700
dnob700
Niveau 10
27 octobre 2005 à 22:03:21

Si tu nous disait sur quelle signe est-ce qu´il dit ça, et surtout qu´est ce que tu as modifié (ne re donne pas ton code, mais juste toutes les lignes que tu as changé) pour qu´on puisse t´aider.

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 22:31:01

J´ai changé:
char reponse;
en:
char reponse[5];

Pardon oui j´ai oublié, il dit "statement cannot resolve adress of overloaded function" sur f.close .

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 22:32:45

C´est bon j´ai trouvé c´est f.colse(); et pas f.close; .
Merci tout le monde de votre aide!

-pedrolan-
-pedrolan-
Niveau 7
27 octobre 2005 à 23:28:45

Une autre question: Comment faire pour que le cin ne se limite pas à un mot?

dnob700
dnob700
Niveau 10
28 octobre 2005 à 01:15:20

cin.getline(variable);

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment