Comparaison de Variables

CassusGreg Messages postés 13 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 25 septembre 2003 - 27 août 2003 à 17:11
CassusGreg Messages postés 13 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 25 septembre 2003 - 27 août 2003 à 17:51
Salut a tous,

Je débute vraiment en C++ (je suis sous VC++6)
Je ne comprend pas grand chose en déclaration de variables et en test de comparaison.
Mon but est ultra simple, prendre le 1er octet d'un fichier, et tester si c'est un "0" ou un "1".
Au passage savez vous s'il existe une fonction qui lit une ligne de texte (termine par 0x0D,0x0A).

Merci d'avance

TCHAR buff[255];
HANDLE hFile;
DWORD Ecrit;

hFile=CreateFile("config.ini",GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

if (hFile)
{
ReadFile(hFile,&buff,1,&Ecrit,0);
//Le premier octet est soit un 0 ou un 1 (en chaine pas le code ASCII)

if (strcmp(buff[0],"0")==0) {
MessageBox(0,"Chiffre 0","Chiffre 0",0);
}
A voir également:

6 réponses

HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
27 août 2003 à 17:24
strcmp() compare deux chaine de caractères terminer par le caractère null \0.rajoute le caractère null en buff[1] ou utilise une variable char buff et ecrit buff=='0'

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
CassusGreg Messages postés 13 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 25 septembre 2003
27 août 2003 à 17:40
buff[1]=0;
char test2='0';

if (strcmp(buff,test2)==0) {
MessageBox(0,"Ok","Ok",0);
}

j'ai le message:
error C2664: 'strcmp' : cannot convert parameter 2 from 'char' to 'const char *'

merci
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 août 2003 à 17:44
Salut,
Si tu veux comparer que le 1er octet du buffer, tu peut faire:
if(buff[0] == '0')
{
...
}
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
27 août 2003 à 17:47
strcmp() compare des chaines de caractères entres elles et pas une chaine de caractère et un caractère.
ecris :
char buff;
HANDLE hFile;
DWORD Ecrit;
hFile=CreateFile("config.ini",GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if (hFile){
ReadFile(hFile,&buff,1,&Ecrit,0);
//Le premier octet est soit un 0 ou un 1 (en chaine pas le code ASCII)
if (buff=='0') {
MessageBox(0,"Chiffre 0","Chiffre 0",0);
}

ou
char buff[255];
HANDLE hFile;
DWORD Ecrit;
hFile=CreateFile("config.ini",GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if (hFile){
ReadFile(hFile,buff,1,&Ecrit,0);
//Le premier octet est soit un 0 ou un 1 (en chaine pas le code ASCII)
buff[1]='\0';
if (strcmp(buff,"0") {
MessageBox(0,"Chiffre 0","Chiffre 0",0);
}

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
27 août 2003 à 17:49
Tiens aardman te propose une autre solution tout aussi bien à laquelle je n'avait pas penser...

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
CassusGreg Messages postés 13 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 25 septembre 2003
27 août 2003 à 17:51
Merci a vous les gars, ca marche mieux maintenant.
Je cromprend un peu mieux maintenant!
0
Rejoignez-nous