Calcule d'un adresse IP en C++
gaylord
-
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai créer un petit programme avec DEVCPP vraiment banal pour les pros du langage C++, chose que je ne suis pas car mes connaissances en C++ sont très limités.
Le petit programme permet de calculer une adresse IP en fonction d'un matériel donnée et d'un numéro de série.
Mon premier problème est que lorsque je tape autre chose qu'un chiffre ex: je tape "a" mon programme arrive à mes calculer une adresse, donc ce que j'aimerai c'est que mes entrées tapées au clavier soit uniquement des chiffres entier positif.
Deuxième problème est que j'aimerai affiché le résultat sous la forme IP = 50.X.Y.Z ; 50 reste fixe, X correspond à une valeur à rentrer en fonction d'une liste de matériel, Y et Z sont des variables qui sont calculé en fonction de la variable ID correspondant au n° de série du matériel
Troisième problème est que lorsque j'exécute mon programme une fois le résultat affiché ,j'appuie sur n'importe quelle touche et la fenêtre ce ferme, je ne connais la commande qui me permet de retourner au début.
Merci pour les conseil que vous pourrez m'apporter
Voici l'architecture de mon programme:
//
// Calcule de L'adresse IP
// IP = 50.X.Y.Z
//
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
// saisie du nombre X et ID
int X,ID;
cout << "Entrez la valeur de X en fonction du matèriel choisis : ";
cin >> X;
cout << "Entrez la valeur de l'ID : ";
cin >> ID;
// calcul de Y
int Y;
Y = ((ID-1) / 254) + 1;
// Calcul de Z
int Z;
Z = ID - ( 254 * (Y - 1));
// Affiche les valeurs de X,Y,Z
cout << " la valeur de X : ";
cout << X << endl;
cout << " la valeur de Y : ";
cout << Y << endl;
cout << " la valeur de Z : ";
cout << Z << endl;
// avant de terminer le programme, attend le signal de
// l'utilisateur pour lui permettre de voir le résultat
system("PAUSE");
return 0 ;
}
j'ai créer un petit programme avec DEVCPP vraiment banal pour les pros du langage C++, chose que je ne suis pas car mes connaissances en C++ sont très limités.
Le petit programme permet de calculer une adresse IP en fonction d'un matériel donnée et d'un numéro de série.
Mon premier problème est que lorsque je tape autre chose qu'un chiffre ex: je tape "a" mon programme arrive à mes calculer une adresse, donc ce que j'aimerai c'est que mes entrées tapées au clavier soit uniquement des chiffres entier positif.
Deuxième problème est que j'aimerai affiché le résultat sous la forme IP = 50.X.Y.Z ; 50 reste fixe, X correspond à une valeur à rentrer en fonction d'une liste de matériel, Y et Z sont des variables qui sont calculé en fonction de la variable ID correspondant au n° de série du matériel
Troisième problème est que lorsque j'exécute mon programme une fois le résultat affiché ,j'appuie sur n'importe quelle touche et la fenêtre ce ferme, je ne connais la commande qui me permet de retourner au début.
Merci pour les conseil que vous pourrez m'apporter
Voici l'architecture de mon programme:
//
// Calcule de L'adresse IP
// IP = 50.X.Y.Z
//
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
// saisie du nombre X et ID
int X,ID;
cout << "Entrez la valeur de X en fonction du matèriel choisis : ";
cin >> X;
cout << "Entrez la valeur de l'ID : ";
cin >> ID;
// calcul de Y
int Y;
Y = ((ID-1) / 254) + 1;
// Calcul de Z
int Z;
Z = ID - ( 254 * (Y - 1));
// Affiche les valeurs de X,Y,Z
cout << " la valeur de X : ";
cout << X << endl;
cout << " la valeur de Y : ";
cout << Y << endl;
cout << " la valeur de Z : ";
cout << Z << endl;
// avant de terminer le programme, attend le signal de
// l'utilisateur pour lui permettre de voir le résultat
system("PAUSE");
return 0 ;
}
A voir également:
- Calcule d'un adresse IP en C++
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
- Adresse mac - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
3 réponses
salut.
pour le 3: ce qui fait quitter le programme, c'est le return à la fin du code....
si tu mets tout ton code dans une boucle
char reponse[20];
do {
//code
//..
cout<<"voulez continuer ?"<<endl;
cin>>reponse
}while (reponse[0]='o' ||reponse[0]='O' )//c'est un exemple
pour afficher le resulmtait sous la forme 50.x.y.z
// Affiche les valeurs de 50.X,Y,Z
cout << "50."<< X <<"."<< Y <<"." <<Z<< endl;
pour le 3: ce qui fait quitter le programme, c'est le return à la fin du code....
si tu mets tout ton code dans une boucle
char reponse[20];
do {
//code
//..
cout<<"voulez continuer ?"<<endl;
cin>>reponse
}while (reponse[0]='o' ||reponse[0]='O' )//c'est un exemple
pour afficher le resulmtait sous la forme 50.x.y.z
// Affiche les valeurs de 50.X,Y,Z
cout << "50."<< X <<"."<< Y <<"." <<Z<< endl;
pour verifier les nombres rentrés par l'utilisateur, je vois pas pourqoui il n'y a pas d'erreur quand tu mets des lettres... (peut etre qu'avec A il pense que c'est de l'hexa, mais ca me semble bisare...essayes avec z )
la solutio que je verrai,c 'est de stocker ca dans une chaine de charactères, et de verifier que chaque caractère entré soit bien un nombre, et si oui, convertir la chaine en entier
la solutio que je verrai,c 'est de stocker ca dans une chaine de charactères, et de verifier que chaque caractère entré soit bien un nombre, et si oui, convertir la chaine en entier