Samoul
-
25 nov. 2001 à 04:11
wagonda
Messages postés1Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 3 mai 2006
-
3 mai 2006 à 17:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
//Déclaration de la class de convertion d'IP chaîne en entier long ou tableau de quatre octets
class CIPConvert
{
private:
union {
unsigned char uc [4];
unsigned long dw;
} m_IP;
public:
//Constructeur par défaut
CIPConvert ();
//Constructeur par copie
CIPConvert (const CIPConvert &);
//Constructeur par convertion de chaîne
CIPConvert (const char *);
//Constructeur par initialisation avec un entier long non signé
CIPConvert (const unsigned long);
//Constructeur par initialisation des 4 valeurs
CIPConvert (const unsigned char,
const unsigned char,
const unsigned char,
const unsigned char);
//Affectation par convertion de chaîne de caractère représentant l'IP
CIPConvert & operator = (const char *);
//Affectation de copie
CIPConvert & operator = (const CIPConvert &);
//Convertion de l'IP en chaîne
operator char * ();
//Retour de l'entier long non signé
operator unsigned long ();
//Prise des octets séparément par indexation
unsigned char operator [] (int);
};
//Précondition : strIP doit être une IP bien formatée
CIPConvert & CIPConvert::operator = (const char * strIP)
{
long iPoints [3]; //Tableau contenant la position des points
//Recherche du premier point et calcul de la position suivante
iPoints [0] = (const char*)strchr (strIP, '.') - strIP + 1;
//Au minimum un chiffre
if (iPoints [0] < 2)
//Je sait c'est as bien de faire un goto
//mais j'ai pas envie d'avoir de multiples niveaux
goto convertend;
iPoints [1] = (const char*)strchr (strIP + iPoints [0], '.') - strIP + 1;
if (iPoints [1] < 2)
goto convertend;
iPoints [2] = (const char*)strchr (strIP + iPoints [1], '.') - strIP + 1;
if (iPoints [2] < 2)
goto convertend;
//C'est bon, il y a le compte de points
//On peux donc convertir en nombre
//NB : Forcage en unsigned char pour virer le warning
m_IP.uc [0] = (unsigned char)atoi (strIP);
m_IP.uc [1] = (unsigned char)atoi (strIP + iPoints [0]);
m_IP.uc [2] = (unsigned char)atoi (strIP + iPoints [1]);
m_IP.uc [3] = (unsigned char)atoi (strIP + iPoints [2]);
convertend:
return *this;
}
//Note : l'appelant doit libérer la chaine crée. (operateur new []/delete [])
CIPConvert::operator char * ()
{
char *strValue = new char [16]; //Adresse IP
char *strTemp = new char [4]; //Temporaire pour le nombre
int i; //Compteur
strValue [0] = 0; //Premier caractère est terminal pour utilisation de strCat
for (i = 0;i < 4;i ++)
{
strcat (strValue, itoa (m_IP.uc [i], strTemp, 10));
if (i < 3)
strcat (strValue, ".");
}
delete [] strTemp;
return strValue;
}
CIPConvert::operator unsigned long ()
{
return m_IP.dw;
}
-----------------------------------------
Compilation OK sous Borland C++ 3.1
Exécution non testée mais je suis certain que ca devrait fonctionner ;)
nonokao
Messages postés6Date d'inscriptionmercredi 13 novembre 2002StatutMembreDernière intervention 1 octobre 2003 1 oct. 2003 à 03:34
oullla ! keske j'fais ici ! je croyais tombé sur un chti prog de ouf ! ben shui po déçu, lol, nan jme moque po, j'avais juste oublié ke moi aussi un jour shui passé par la case départ ;) Bref, clair k'il y a plein de façon d'écrire ton chti prog, de la pire à la meilleur ! lol
j'aime bien la proposition qui casse tout, de ThreaT (toré kan même pu mettre qlq commentaires) en plus vérifier l'ip avec inet_addr() raccourci amplement le nombre de lignes de code.
BaFM
Messages postés64Date d'inscriptionmercredi 24 juillet 2002StatutMembreDernière intervention26 novembre 2009 5 mars 2003 à 16:49
pourkoi pas utiliser cette structure :
union IP
{
BYTE b[4];
DWORD dw;
};
pour faire la "convertion" ?
pour l'adresse en texte, tu recherche la position des points et tu converti pour mettre au bon endroit et même po besoin de faire d'addition ! ni de multiplication pour avoir la valeur totale ! ^^
Samoul
Messages postés12Date d'inscriptiondimanche 25 novembre 2001StatutMembreDernière intervention11 juin 2005 23 janv. 2003 à 03:42
J'avoue que ton prog a du bon lol! C'est beaucoup plus simple parconte le mieux te permet de comprendre le fonctionement! Donc 2 choses différentes mais utiles! Et fuck you le pd qui dit que jfait des fautes!
cs_ThreaT
Messages postés3Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention 3 août 2005 23 janv. 2003 à 02:06
bonjour,
je sais que mon intervention risque d'être mal venue, mais pourquoi
ce prendre la tête alors qu'il t'aurais suffi d'ecrire un truc de ce style pour réaliser un programme similaire :
if (!argv[1])
{
printf ("usage %s
",argv[0]);
exit (1);
}
IPconvert = inet_addr (argv[1]);
if (IPconvert == INADDR_NONE)
printf ("Mauvaise adresse IP !
");
else
printf ("L'IP converti en LONG non signe est : %u
",ntohl (IPconvert));
printf ("pas de quoi en faire tout un fromage :-p
");
}
------ snip -----
E:code>cl toto.c /link wsock32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
toto.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:toto.exe
wsock32.lib
toto.obj
E:code>toto 10.0.0.1
L'IP converti en LONG non signe est : 167772161
pas de quoi en faire tout un fromage :-p
E:code>ping 167772161
Envoi d'une requête 'ping' sur 10.0.0.1 avec 32 octets de données :
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Statistiques Ping pour 10.0.0.1:
Paquets : envoyés 4, reçus 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
minimum 0ms, maximum 0ms, moyenne = 0ms
E:code>
cette remarque etait juste la pour appuyer en quelque sorte la remarque de toto, car tu me donne l'impression de ne pas l'avoir comprise.
Eh, sérieux, si tu vas encore à l'école, essaie que ça te serve au moins à qque chose : APPRENDS A ECRIRE FRANCAIS SANS FAUTES A TOUS LES MOTS !!!
Merci...
JE VEUX FAIRE PART A TOUT CPPFRANCE D'UNE FAIBLESSE DE VISUAL C++ :
Si l'include #include "stdafx.h"
N'est pas AU TOUT DEBUT du prog eh ben ça plante !!!!
JE VEUX FAIRE PART A TOUT CPPFRANCE D'UNE FAIBLESSE DE VISUAL C++ :
Si l'include #include "stdafx.h"
N'est pas AU TOUT DEBUT du prog eh ben ça plante !!!!
Je te remerci beaucoup pour ton commentaire! J'aurait bien aimer en faire usage mais vois tu je commence le Cpp chui rendu a la page 100 de mon livre de 1300 page ... Allors je ne comprend pas vraiment tout ce que tu as dit mais il y as de bonne chance que dans quelque mois je comprenne... J'ai 15 ans et je vais a l'écolle allors je n'ai pas beaucoup de temp héhé!
salut a toi, je suis entrain de voir ton programme et je voudrais te donner quelque conseil entre amis tu peux le suivre comme tu peux carement t'en passer se comme tu veux :
le cpp est un language different de c , quand je te vois mettre de synthaxe de cpp sans passer par de classe ,je me dit que ton programme, tu aurais mieux fait de le faire en c car tu passe a coter de chose tres elementaire du cpp. pour recrire un programme qui est fais en c vers c++,il ne faut pas changer que le synthax mais la facon de voir la structure de ton programme exemple:encapsulation ,heritage,template etc.. meme si ce un petit programme , j'aurais fais une petite classe avec de variable membre ip et de methode qui l'utilise, bref,je te donne simplement mon avis , que tu le suit ou pas , sa changeras rien pour moi.
si tu veux me donner ton opinion ,je suis sur irc #programmeur nick beos´.
Merci Socrate et toto je sais c'Est voulue! Le but c'est pas de faire une clef d'encryption! C'est de faire comprendre le principe des entier long comme tu le dit!
Je suis con, je m'appelle toto. Mais je crois que ton prog convertit seulement l'IP en entier long. Et c'est cette conversion qu'on utilise dans tous les programmes TCP/IP. C'est pour ça que l'on peut utiliser ton IP "crypté" pour faire un ping.
Voila, c'était un message de toto l'idiot.
Salut
Peut etre que vous utilisezz tout simplement pas le meme compilateur et c'est pour cela que l'un des ompilateur lui a besoin de la lib stdafx.h qui je croi est propre a VC++, alors que l'autre en a pas besoin
Bob je ne sais pas pourquoi il faut que tu rajoute cette librairie mais moi seulement avec iostream je suis corecte et tout marche! Et merci Jo pour ton commentaire je vais changer ca!
Salut,
petite remarque; tu utilise trop endl inutiliement car je te rappelle qu'un endl fait un retour chariot mais aussi un fflush(); et toi tu en fait trop souvent plutot que de mettre
il ne sert a rien de faire des fflush(); aussi souvent que tu le fait dans ton programme, il n'est meme pas utile dans un utiliser du tout dans ton programme
3 mai 2006 à 17:09
et c'est d'un grand interet sur WINCE par exemple...
24 sept. 2004 à 09:01
23 sept. 2004 à 10:26
du style :
---- snip ----
long __cdecl MyFuckingInet_addr(unsigned char *data)
{
char temp[16], cIP[3], *p;
DWORD dwIpConverted = 0;
BYTE sIP = 0;
int i = 0;
lstrcpy( temp, data );
p = strtok( temp, "." );
while( p && i < 4 )
{
lstrcpy( cIP, p );
sIP = atoi( cIP );
memcpy( (BYTE *)&dwIpConverted + i, (BYTE *)&sIP , 1);
p = strtok( NULL, ".");
i++;
}
return dwIpConverted;
}
------------------------
voila, comme sa, j'espère que tous le monde est content.
22 sept. 2004 à 18:58
unsigned long ip = inet_add("127.0.0.1");
1 oct. 2003 à 19:32
Vais vous faire une petite classe de convertion...
----------------IPConvert.h-------------------------
#ifndef IPCONVERT_H
#define IPCONVERT_H
//Déclaration de la class de convertion d'IP chaîne en entier long ou tableau de quatre octets
class CIPConvert
{
private:
union {
unsigned char uc [4];
unsigned long dw;
} m_IP;
public:
//Constructeur par défaut
CIPConvert ();
//Constructeur par copie
CIPConvert (const CIPConvert &);
//Constructeur par convertion de chaîne
CIPConvert (const char *);
//Constructeur par initialisation avec un entier long non signé
CIPConvert (const unsigned long);
//Constructeur par initialisation des 4 valeurs
CIPConvert (const unsigned char,
const unsigned char,
const unsigned char,
const unsigned char);
//Affectation par convertion de chaîne de caractère représentant l'IP
CIPConvert & operator = (const char *);
//Affectation de copie
CIPConvert & operator = (const CIPConvert &);
//Convertion de l'IP en chaîne
operator char * ();
//Retour de l'entier long non signé
operator unsigned long ();
//Prise des octets séparément par indexation
unsigned char operator [] (int);
};
#endif//IPCONVERT_H
#endif//IPCONVERT_H
----------------IPConvert.cpp-----------------------
#include <stdlib.h>
#include <string.h>
#include "IPCONV.H"
CIPConvert::CIPConvert ()
{
m_IP.dw = 0;
}
CIPConvert::CIPConvert (const CIPConvert &ip)
{
m_IP.dw = ip.m_IP.dw;
}
CIPConvert::CIPConvert (const char * strIP)
{
*this = strIP;
}
CIPConvert::CIPConvert (const unsigned long dw)
{
m_IP.dw = dw;
}
CIPConvert::CIPConvert (const unsigned char uc0,
const unsigned char uc1,
const unsigned char uc2,
const unsigned char uc3)
{
m_IP.uc [0] = uc0;
m_IP.uc [1] = uc1;
m_IP.uc [2] = uc2;
m_IP.uc [3] = uc3;
}
//Précondition : strIP doit être une IP bien formatée
CIPConvert & CIPConvert::operator = (const char * strIP)
{
long iPoints [3]; //Tableau contenant la position des points
//Recherche du premier point et calcul de la position suivante
iPoints [0] = (const char*)strchr (strIP, '.') - strIP + 1;
//Au minimum un chiffre
if (iPoints [0] < 2)
//Je sait c'est as bien de faire un goto
//mais j'ai pas envie d'avoir de multiples niveaux
goto convertend;
iPoints [1] = (const char*)strchr (strIP + iPoints [0], '.') - strIP + 1;
if (iPoints [1] < 2)
goto convertend;
iPoints [2] = (const char*)strchr (strIP + iPoints [1], '.') - strIP + 1;
if (iPoints [2] < 2)
goto convertend;
//C'est bon, il y a le compte de points
//On peux donc convertir en nombre
//NB : Forcage en unsigned char pour virer le warning
m_IP.uc [0] = (unsigned char)atoi (strIP);
m_IP.uc [1] = (unsigned char)atoi (strIP + iPoints [0]);
m_IP.uc [2] = (unsigned char)atoi (strIP + iPoints [1]);
m_IP.uc [3] = (unsigned char)atoi (strIP + iPoints [2]);
convertend:
return *this;
}
CIPConvert & CIPConvert::operator = (const CIPConvert & ip)
{
m_IP.dw = ip.m_IP.dw;
return *this;
}
//Note : l'appelant doit libérer la chaine crée. (operateur new []/delete [])
CIPConvert::operator char * ()
{
char *strValue = new char [16]; //Adresse IP
char *strTemp = new char [4]; //Temporaire pour le nombre
int i; //Compteur
strValue [0] = 0; //Premier caractère est terminal pour utilisation de strCat
for (i = 0;i < 4;i ++)
{
strcat (strValue, itoa (m_IP.uc [i], strTemp, 10));
if (i < 3)
strcat (strValue, ".");
}
delete [] strTemp;
return strValue;
}
CIPConvert::operator unsigned long ()
{
return m_IP.dw;
}
unsigned char CIPConvert::operator [] (int i)
{
if ((i >= 0) && (i < 4))
return m_IP.uc [i];
else
return 0;
}
-----------------------------------------
Compilation OK sous Borland C++ 3.1
Exécution non testée mais je suis certain que ca devrait fonctionner ;)
1 oct. 2003 à 03:34
j'aime bien la proposition qui casse tout, de ThreaT (toré kan même pu mettre qlq commentaires) en plus vérifier l'ip avec inet_addr() raccourci amplement le nombre de lignes de code.
5 mars 2003 à 16:49
union IP
{
BYTE b[4];
DWORD dw;
};
pour faire la "convertion" ?
pour l'adresse en texte, tu recherche la position des points et tu converti pour mettre au bon endroit et même po besoin de faire d'addition ! ni de multiplication pour avoir la valeur totale ! ^^
23 janv. 2003 à 03:42
23 janv. 2003 à 02:06
je sais que mon intervention risque d'être mal venue, mais pourquoi
ce prendre la tête alors qu'il t'aurais suffi d'ecrire un truc de ce style pour réaliser un programme similaire :
-------- snip ------
/*
* compile with cl source.c /link wsock32.lib
*/
#include <stdio.h>
#include <winsock.h>
void main (int argc, char *argv[])
{
unsigned long IPconvert;
if (!argv[1])
{
printf ("usage %s
",argv[0]);
exit (1);
}
IPconvert = inet_addr (argv[1]);
if (IPconvert == INADDR_NONE)
printf ("Mauvaise adresse IP !
");
else
printf ("L'IP converti en LONG non signe est : %u
",ntohl (IPconvert));
printf ("pas de quoi en faire tout un fromage :-p
");
}
------ snip -----
E:code>cl toto.c /link wsock32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
toto.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:toto.exe
wsock32.lib
toto.obj
E:code>toto 10.0.0.1
L'IP converti en LONG non signe est : 167772161
pas de quoi en faire tout un fromage :-p
E:code>ping 167772161
Envoi d'une requête 'ping' sur 10.0.0.1 avec 32 octets de données :
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Réponse de 10.0.0.1 : octets=32 temps<10 ms TTL=128
Statistiques Ping pour 10.0.0.1:
Paquets : envoyés 4, reçus 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
minimum 0ms, maximum 0ms, moyenne = 0ms
E:code>
cette remarque etait juste la pour appuyer en quelque sorte la remarque de toto, car tu me donne l'impression de ne pas l'avoir comprise.
mais bon, je me trompe peut être...
++
4 déc. 2001 à 14:45
Merci...
2 déc. 2001 à 22:01
2 déc. 2001 à 22:00
Si l'include #include "stdafx.h"
N'est pas AU TOUT DEBUT du prog eh ben ça plante !!!!
2 déc. 2001 à 21:58
Si l'include #include "stdafx.h"
N'est pas AU TOUT DEBUT du prog eh ben ça plante !!!!
2 déc. 2001 à 18:49
2 déc. 2001 à 02:23
le cpp est un language different de c , quand je te vois mettre de synthaxe de cpp sans passer par de classe ,je me dit que ton programme, tu aurais mieux fait de le faire en c car tu passe a coter de chose tres elementaire du cpp. pour recrire un programme qui est fais en c vers c++,il ne faut pas changer que le synthax mais la facon de voir la structure de ton programme exemple:encapsulation ,heritage,template etc.. meme si ce un petit programme , j'aurais fais une petite classe avec de variable membre ip et de methode qui l'utilise, bref,je te donne simplement mon avis , que tu le suit ou pas , sa changeras rien pour moi.
si tu veux me donner ton opinion ,je suis sur irc #programmeur nick beos´.
je te souhaite une bonne soiré.
28 nov. 2001 à 22:19
27 nov. 2001 à 18:11
int ip1 0, ip2 0, ip3 = 0, ip4 = 0, iptotal = 0
serait plus approprié.
27 nov. 2001 à 13:27
Voila, c'était un message de toto l'idiot.
25 nov. 2001 à 20:03
j'utilise VC++ comme toi et tout marche tres bien en incluant iostream et stdafx
25 nov. 2001 à 16:46
Peut etre que vous utilisezz tout simplement pas le meme compilateur et c'est pour cela que l'un des ompilateur lui a besoin de la lib stdafx.h qui je croi est propre a VC++, alors que l'autre en a pas besoin
25 nov. 2001 à 15:14
25 nov. 2001 à 13:51
--------------------Configuration: ConsoleSTRUCT - Win32 Debug--------------------
Compiling...
ConsoleSTRUCT.cpp
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(11) : error C2065: 'cout' : undeclared identifier
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(11) : error C2297: '<<' : illegal, right operand has type 'char [45]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(17) : error C2297: '<<' : illegal, right operand has type 'char [61]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(18) : error C2065: 'cin' : undeclared identifier
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(18) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(21) : error C2297: '<<' : illegal, right operand has type 'char [44]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(22) : error C2065: 'endl' : undeclared identifier
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(22) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(23) : error C2297: '<<' : illegal, right operand has type 'char [61]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(24) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(32) : error C2297: '<<' : illegal, right operand has type 'char [61]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(33) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(36) : error C2297: '<<' : illegal, right operand has type 'char [44]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(37) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(38) : error C2297: '<<' : illegal, right operand has type 'char [61]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(39) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(47) : error C2297: '<<' : illegal, right operand has type 'char [62]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(48) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(51) : error C2297: '<<' : illegal, right operand has type 'char [44]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(52) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(53) : error C2297: '<<' : illegal, right operand has type 'char [62]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(54) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(62) : error C2297: '<<' : illegal, right operand has type 'char [62]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(63) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(66) : error C2297: '<<' : illegal, right operand has type 'char [44]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(67) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(68) : error C2297: '<<' : illegal, right operand has type 'char [62]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(69) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(74) : error C2297: '<<' : illegal, right operand has type 'char [23]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(75) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(76) : error C2297: '<<' : illegal, right operand has type 'char [2]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(77) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(78) : error C2297: '<<' : illegal, right operand has type 'char [2]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(79) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(80) : error C2297: '<<' : illegal, right operand has type 'char [2]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(81) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(82) : error C2297: '<<' : illegal, right operand has type 'char [2]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(91) : error C2297: '<<' : illegal, right operand has type 'char [20]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(92) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(93) : error C2297: '<<' : illegal, right operand has type 'char [3]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(95) : error C2297: '<<' : illegal, right operand has type 'char [2]'
C:Program FilesMicrosoft Visual StudioMyProjectsConsoleSTRUCTConsoleSTRUCT.cpp(96) : error C2297: '<<' : illegal, right operand has type 'char [70]'
Error executing cl.exe.
ConsoleSTRUCT.exe - 25 error(s), 17 warning(s)
On peut m'aider ??
25 nov. 2001 à 12:01
petite remarque; tu utilise trop endl inutiliement car je te rappelle qu'un endl fait un retour chariot mais aussi un fflush(); et toi tu en fait trop souvent plutot que de mettre
il ne sert a rien de faire des fflush(); aussi souvent que tu le fait dans ton programme, il n'est meme pas utile dans un utiliser du tout dans ton programme
25 nov. 2001 à 04:11