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

probleme fonction 'char' (dev C++)

ganon551
ganon551
Niveau 7
17 février 2005 à 17:57:26

Bon comme l´indique le titre, j´ai un prob avec la fonction " char".
Je veux entrer un mot, donc je met:

" "char reponse[100];""

je fait les modifications nécéssaires mais quand je compile, il m´indique un probleme a la ligne ou j´ai entré la fonction " if", j´ai mis:

" "if ( reponse==oui)""

dans la partie " erreurs", il me marque:

" " 15 C:\Dev-Cpp\mat-psr v1.1\main.cpp `oui´ undeclared ( first use this function)
( Each undeclared identifier is reported only once for each function it appears in.) " "

Voila, je ne comprend pas, est ce qu´il faut entrer quelque chose de special dans la fonction " if" quand on utilise " char"?

Merci d´avance de m´aider!!

Vengeur41
Vengeur41
Niveau 10
17 février 2005 à 18:00:01

1 - Char est un type et non une fonction
2 - plutot ,
if ( reponse=="oui")
3- Optimise, ca sert à rien de faire un tableau de 100 caractères si faut en mettre que 3.
Ou alors fait char *reponse

Lapintade
Lapintade
Niveau 30
17 février 2005 à 18:05:00

Le type de base est " char" c´est a dire un caractere.

Tu peux donc trés bien ecrire :

char monchar;
. ..
if ( monchar==´Y´)
. ..

Ce que tu utilise toi, c´est plusieurs char, c´est a dire une " chaine de caractere". Dans ce cas, il n´existe pas de fonction d´egalité automatique.
Il faut utiliser la fonction strcmp qui va comparer deux chaines de caractere. Si le resultat est nul alors les chaine sont egale ( en fait il fait la difference des deux chaines caracteres par caracteres).

Ecris donc :

  1. include " string.h"

if ( strcmp(reponse,"oui")==0)
{
. ..
}

Quintoff
Quintoff
Niveau 10
17 février 2005 à 18:09:01

Je ne programme pas en c mais je peux te dire ceci :

char et un type primitif qui peux stoker 1 caractère. Donc deja sela explique l´erreur pour reponse==oui, deuxiemement oui est une chaine de caracteres donc la synthaxe => reponse
=="oui", troisiemement si reponse est un tableau tu ne peux pas tester la condition suivante reponse == " oui" mais seulement une entrée du tableau.

exemple : reponse[0] == ´o´ ( pour char c entre ´ et non " comme une chaine de caractere)

Dons je pense que tu doit utiliser String ( chaine de carateres mais attention string n´est pas un type primitif! Je ne connait pas le c++ ( moi suis un amis du java :-) ) mais je suposse que c´est un objet donc si tu fait :

String reponse;
/ /attention donne une valeur a reponse ici
if(reponse == " oui")

ca renvera false parce que il va tester la référence et non la valeur de l´objet donc tu doit trouver une fonction pour tester la valeur d´un objet string.

exemple en JAVA :
String reponse = " oui";
if ( reponse == " oui") / /revoit false ! !
if ( reponse.equals("oui")) / /revoit true.

J´ai basé ma répnse sur le java qui est proche du c++ j´espere donc ne pas avoir fait d´erreur mais JYY pourra vérifier quand il passera en attendant bonne chance :-)

Quintoff
Quintoff
Niveau 10
17 février 2005 à 18:09:56

A ben voila lapintade a répondu avant moi j´ai tapé tout ca pour rien :)

Vengeur41
Vengeur41
Niveau 10
17 février 2005 à 18:10:38

Quintoff > Dans le cas qui nous interesse, c´est un tableau de caractères donc ca marche.

Erf oui on peut utiliser strcmp mais autant ne pas utiliser de fonctions de bibliothèques.
Il avait juste oublié les guillements

Quintoff
Quintoff
Niveau 10
17 février 2005 à 18:14:14

A bon je savait pas qu´on pouvais tester un tableau de la sorte en c++ .

Par contre quand tu dit que il ne vaut mieux pas utiliser des bibliothèque je suis pas dac. Si on a inventé string c pas pour s´embeter encoer avec char pour des chaine de caracteres... Donc mon avis PERSONNEL ( tout le monde pense ce qu´il veux) est que c´est mieux d´utiliser string.

++

jejej
jejej
Niveau 9
17 février 2005 à 18:22:30

ca marche chez vous ?
parceque moi , j´ai beau entrer jejej , ca compare pas
. ..

  1. include < iostream>

using namespace std;

int main()
{

cout<<"entrez le code";
char Reponse[5+1];
cin>>Reponse;

if ( Reponse == " jejej" )
{
cout<<"ok c bon entre";
}
cin.get();
cin.get();

return 0;

}

GL_K
GL_K
Niveau 10
17 février 2005 à 18:25:05

Arrêtez le C, il prend la poussière!

Vengeur41
Vengeur41
Niveau 10
17 février 2005 à 18:33:56

Et tu propose quoi à la place ?

Vengeur41
Vengeur41
Niveau 10
17 février 2005 à 18:36:04

Ca marche :
if ( reponse="jejej\0")
?

thesuperbest
thesuperbest
Niveau 8
17 février 2005 à 18:42:17
  1. include < iostream>
  2. include < string>

using namespace std;

int main()
{
string Reponse;
cout<<"Entrez le code"<<endl;
cin>>Reponse;
if ( Reponse == " jejej") cout < < " Ok c´est bon entre" < <endl;
system("PAUSE");
return 0;
}

Lapintade
Lapintade
Niveau 30
18 février 2005 à 11:22:08

Qu´est ce que c´est vilain :)

jejej
jejej
Niveau 9
18 février 2005 à 11:24:15

oui , je préfère strcmp :)
ouais , j´avais aussi pense au \0 apres jejej , mais . .. marche pas non plus

( enfin , j´arrive pas a le faire marcher , plutot , si ca marche chez d´autres . ..)

LGV
LGV
Niveau 28
18 février 2005 à 11:40:12

( l´operator == n´est pas surcharge par defaut pour les std::string du C++ ; c´est un des premiers trucs a faire pour un class String custom, avec tous les operateurs utiles a une manipulation souple)

cobradu94
cobradu94
Niveau 6
18 février 2005 à 12:56:43

Ton code jejej marche tres bien chez moi

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