begin process at 2012 05 28 22:16:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

condition type char


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

condition type char

samedi 27 mars 2010 à 15:57:39 | condition type char

Adict


Bonjour

voila j'ai un problème :p

j'aime faire de petit programme pour m'entrainer et faire des challenges mais la je bloque
en gros j'aimerais faire comment dire ... une condition de type char.

voila se que j'ai fait pour le moment mais qui ne marche pas
se qui se passe c'est que si je rentre un nombre ou des caractères supérieure à 4 ça conte comme "bon"

normalement je doit aller sur "if" que si je tape "access" mais la si je tape (azerty) ou (12345) ça me dirige sur "if"
en revanche si je tape une petite chaine comme (aze) ou (123) cela va bien dans "else if"

Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <FMOD/fmod.h>
#include <time.h>
#include <windows.h>
#include <string.h>

  
  
  void Color(int couleurDuTexte,int couleurDeFond);


int main(int argc, char *argv[])
{
 FSOUND_Init(44100, 32, 0);
FSOUND_SAMPLE *registr = NULL;
FSOUND_SAMPLE *hahha = NULL; 
registr = FSOUND_Sample_Load(FSOUND_FREE, "registrationcomplete.wav", 0, 0, 0);
hahha = FSOUND_Sample_Load(FSOUND_FREE, "hahha.wav", 0, 0, 0);
int compteur = 0;
Color(15,1);
printf("\nChargement du Challenge....\n");
    sleep(5000);
    system("cls");
    
    char acc = "access";

printf("******************************************************\n");
printf("*                                                    *\n");
printf("*             Systeme Administrator                  *\n");
printf("*                                                    *\n");
printf("******************************************************\n");

printf("\n\nWhat's the magic Word ??\n\n");
  
  scanf("%c", &acc);
 
  if (acc == "access")
          {
  system("CLS" );
  printf ("ok\n");
  FSOUND_PlaySound(FSOUND_FREE, registr);
  printf("\nLoading...\n");
  sleep(2000);
  system("CLS");
  printf("\npress ENTER\n");
  getch();
}

  
  else if (acc != "access")
  {
  system("CLS" ); 
  
  while (compteur < 30)
{
    printf("You didn't say the Magic word !!! HAHAHA !!!\n");
    compteur++;
}
    
FSOUND_PlaySound(FSOUND_FREE, hahha);
getch();
return 0;
  }
  system("CLS"); 
  
  /* 
instructions
*/
  
  
 getch();	
  FSOUND_Sample_Free(registr);
  FSOUND_Sample_Free(hahha);
 	FSOUND_Close();
  return 0;
}


void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
{
        HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}



_______________________________________________________________________
j'ai 16 ans et j'aime l'informatique, surtout les programmes
samedi 27 mars 2010 à 18:22:59 | Re : condition type char

BruNews

Administrateur CodeS-SourceS
char acc = "access";
ça ne devrait même pas compiler.

'char' c'est 1 octet, jamais tu ne pourras y mettre l'adresse d'une chaine.

char acc[] = "access"; // OK
char *acc = "access"; // OK

Ensuite c'est strcmp() et non '==';

Plonge tpoi dans un bouquin de C.

ciao...
BruNews, MVP VC++
samedi 27 mars 2010 à 19:43:58 | Re : condition type char

Adict


ok donc c'est bon j'ai cherché et trouvé pour strcmp() mais y à toujours un bug

je vous met une partie de code sur laquelle j'utilise ça et j'en est aussi profité pour utiliser fgets mais j'ai beau mettre n'importe quoi il va toujours à la premier condition

Code C/C++ :
char cd[] = "cd Management";
 char cdd[] = "cd Personal Document";
/*
.......
*/
printf("\n\nterminal : ");
    fgets(chaine, sizeof chaine, stdin);
    clean(chaine);
 
 if ( strcmp( cd, "cd Management" ) == 0 )
 {   
     printf("test");
     getch();
     }

else if ( strcmp( cdd, "cd Personal Document" ) == 0 )
     {
          printf("test test");
          getch();
          }




_______________________________________________________________________
j'ai 16 ans et j'aime l'informatique, surtout les programmes
samedi 27 mars 2010 à 22:23:43 | Re : condition type char

BruNews

Administrateur CodeS-SourceS
char cd[] = "cd Management";
...
if(strcmp(cd, "cd Management") == 0)
Evident que ce IF sera évalué OK à tout coup.

ciao...
BruNews, MVP VC++
samedi 27 mars 2010 à 23:07:57 | Re : condition type char

Adict



alors comment puis-je faire pour que lorsque je tape "cd Personal Document" il ne parte pas sur if(strcmp(cd, "cd Management") == 0) à partir de fgets peut-être




j'ai 16 ans et j'aime l'informatique, surtout les programmes
samedi 27 mars 2010 à 23:43:54 | Re : condition type char

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
cd pointe sur chaine "cd Management".
Cesse de comparer cd et la chaine qu'il référence sinon le IF sera toujours bon.

Si tu récupères la chaine tapée dans le buffer 'chaine',
alors: if(strcmp(chaine, "cd Management") == 0)...

ciao...
BruNews, MVP VC++
dimanche 28 mars 2010 à 00:08:55 | Re : condition type char

Adict


je te remercie

j'ai 16 ans et j'aime l'informatique, surtout les programmes


Cette discussion est classée dans : int, printf, include, sample, fsound


Répondre à ce message

Sujets en rapport avec ce message

Probleme reception sur un serveur windows en vc++ [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi, toute mes socket sont positives le client envois Separer une chaine en sous chaine [ par firemax ] Bonjour Je me posais une question , j'aimerais diviser une chaine en sous chaine pour pouvoir ensuite les trier par longueur de chaine de caractere oh non!! [ par bako25 ] Le prog suivant  calcule le nombre des 'e' dans un paragraphe: #include #include< Passage d'argument pour printf [ par Quazar ] BonjourJe cherche à créer une fonction qui aura le même effet que printf, c'est à dire que je passerais à cette fonction une liste de paramètre du mêm affichage bizarre [ par darkwhite ] Salut a tousJe commence par faire une lotterie simple mais j'ai un probleme au niveau de l'affichage d'un tableau, mon code est le suivant#include #in problème de if et else [ par ffnajia ] bonjour je comprend pas pourquoi le programme ci-dessous ne prend pas en compte l'éxistence de if et else!!!???#include#include using namespace std; Mon programme quitte tout seul [ par darkwhite ] Salut j'ai le code suivant tout con ;#include #include int main(int argc, char *argv[]){  int a,b;  printf("1er nombre:");  scanf("%d",&a);  printf("2 Equation seconde degres [ par sliverman ] Bonsoir a tous, alors voila, ( je commence en éléctro des demain le C et le prof nous a dit se qu'on devra savoir faire au bout des 8h, c'est résoudre probleme avec fmod [ par flofloo ] bonjour tout le monde...apres compilation du code suivant :#include #include #include int main(int argc, char *argv[]){    FSOUND_SAMPLE *tir = NUL Suite de Fibonacci [ par BastienL21 ] Bonjour à tous, débutant en C, j'ai écris un code permettant d'éxecuter la suite de Fibonacci en additionnant les deux nombres précédant, stockés dans


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales