IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Ecrire la MAC-ADDRESS dans un fichier


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Ecrire la MAC-ADDRESS dans un fichier
    Bonjour,

    J'aimerais que ce programme écrive ma MAC-ADDRESS dans un certain fichier "text.txt" voici comme j'ai procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    #include "stdafx.h"
    #include <Windows.h>
    #include <Iphlpapi.h>
    #include <Assert.h>
    #include <iostream>
    #include <string>
    #include <fstream>
    #pragma comment(lib, "iphlpapi.lib")
     
     
    using namespace std;
    // Prints the MAC address stored in a 6 byte array to stdout
    static void PrintMACaddress(unsigned char MACData[])
     
     
    {
     
    	printf("MAC Address: %02X-%02X-%02X-%02X-%02X-%02X\n",
    		MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);
     
        ofstream fichier("test.txt", ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert
     
            if(fichier)
            {
     
                    fichier << "Mac Address : " <<.......; //Je ne trouve pas la variable qui contient ma MAC-ADDRESS.
     
                    fichier.close();
            }
            else
                    cerr << "Impossible d'ouvrir le fichier !" << endl;
     
     
     
    }
     
    // Fetches the MAC address and prints it
    static void GetMACaddress(void)
    {
    	IP_ADAPTER_INFO AdapterInfo[16];			// Allocate information for up to 16 NICs
    	DWORD dwBufLen = sizeof(AdapterInfo);		// Save the memory size of buffer
     
    	DWORD dwStatus = GetAdaptersInfo(			// Call GetAdapterInfo
    		AdapterInfo,							// [out] buffer to receive data
    		&dwBufLen);								// [in] size of receive data buffer
    	assert(dwStatus == ERROR_SUCCESS);			// Verify return value is valid, no buffer overflow
     
    	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info
    	do {
    		PrintMACaddress(pAdapterInfo->Address);	// Print MAC address
    		pAdapterInfo = pAdapterInfo->Next;		// Progress through linked list
    	}
    	while(pAdapterInfo);						// Terminate if last adapter
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	GetMACaddress();// Obtain MAC address of adapters
     
     
     
    	return 0;
    }

    Je préfère vous dire que je ne sais pas programmer en C++ et que j'ai trouvé ce code sur internet, pour les quelques lignes qui devraient écrire la MAC-ADDRESS dans un fichier, je les ai aussi trouvée sur internet. Donc je ne connais pas .

    Premièrement je sais pas si ces lignes doivent se trouver la, si elles sont bien écrites car pour l'instant quand je lance le programme, le fichier test.txt ne contient rien.

    Merci d'avance.

    A+ .

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Pourtant elle est juste au dessus, faut pas abuser...

    Je te donne la solution, mais si tu veux continuer à programmer, faudrait que t'apprennes au moins les bases .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    // Prints the MAC address stored in a 6 byte array to stdout
    static void PrintMACaddress(unsigned char MACData[])
    {
    	ostringstream mac_addr;
    	mac_addr << std::hex;
    	for( int i = 0; i < 6; ++i )
    	{
    		mac_addr << (int)MACData[i];
     
    		if( i < 5 )
    			mac_addr << "-";
    	}
     
    	cout << "Mac Address: " << mac_addr.str()  << endl;
     
    	ofstream fichier("test.txt", ios::out );  // ouverture en écriture avec effacement du fichier ouvert
     
    	if(fichier)
    	{
    		fichier << "Mac Address: " << mac_addr.str();
     
    		fichier.close();
    	}
    	else
    	{
    		cerr << "Impossible d'ouvrir le fichier !" << endl;
    	}
     
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Salut,

    Merci pour ta réponse, je trouve juste un erreur avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    #include "stdafx.h"
    #include <Windows.h>
    #include <Iphlpapi.h>
    #include <Assert.h>
    #include <iostream>
    #include <string>
    #include <fstream>
    #pragma comment(lib, "iphlpapi.lib")
     
     
    using namespace std;
    // Prints the MAC address stored in a 6 byte array to stdout
    static void PrintMACaddress(unsigned char MACData[])
     
     
    {
     
        ostringstream mac_addr;
    	mac_addr << std::hex;
    	for( int i = 0; i < 6; ++i )
    	{
    		mac_addr << (int)MACData[i];
     
    		if( i < 5 )
    			mac_addr << "-";
    	}
     
    	cout << "Mac Address: " << mac_addr.str()  << endl;
     
    	ofstream fichier("test.txt", ios::out );  // ouverture en écriture avec effacement du fichier ouvert
     
    	if(fichier)
    	{
    		fichier << "Mac Address: " << mac_addr.str();
     
    		fichier.close();
    	}
    	else
    	{
    		cerr << "Impossible d'ouvrir le fichier !" << endl;
    	}
     
    }
     
     
    // Fetches the MAC address and prints it
    static void GetMACaddress(void)
    {
    	IP_ADAPTER_INFO AdapterInfo[16];			// Allocate information for up to 16 NICs
    	DWORD dwBufLen = sizeof(AdapterInfo);		// Save the memory size of buffer
     
    	DWORD dwStatus = GetAdaptersInfo(			// Call GetAdapterInfo
    		AdapterInfo,							// [out] buffer to receive data
    		&dwBufLen);								// [in] size of receive data buffer
    	assert(dwStatus == ERROR_SUCCESS);			// Verify return value is valid, no buffer overflow
     
    	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info
    	do {
    		PrintMACaddress(pAdapterInfo->Address);	// Print MAC address
    		pAdapterInfo = pAdapterInfo->Next;		// Progress through linked list
    	}
    	while(pAdapterInfo);						// Terminate if last adapter
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	GetMACaddress();// Obtain MAC address of adapters
     
     
     
    	return 0;
    }


    Error : aggregate 'std::ostringstream mac_addr' has incomplete type and cannot be defined.

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    #include <sstream>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Merci, ca fonctionne mais j'ai encore un petit problème.

    Le fichier source se trouve dans le dossier du programme par contre le fichier .exe se trouve dans le dossier Debug, j'ai essayé le programme avec le fichier test.txt dans le dossier Debug ca ne me mets rien dedans...

    Comment expliquer ceci ?

    Et faut-il que je lance l'exe ou le fichier source en le compilant pour avoir un résultat ?

    A+

  6. #6
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Si tu lances l'executable via ton EDI, en général ton dossier de travail est le dossier du projet.

    Si tu lances directement l'executable se trouvant dans ton dossier (debug ou release), alors le fichier se trouvera à côté de ton exe.

Discussions similaires

  1. Ecrire & Lire des énumérés dans un fichier Texte
    Par WebPac dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 11h04
  2. Ecrire à une ligne précise dans un fichier
    Par Valkirion dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2007, 16h18
  3. ecrire une touche directionnelle dans un fichier excel
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/08/2006, 21h41
  4. Ecrire à un endroit précis dans un fichier texte
    Par zemeilleurofgreg dans le forum Delphi
    Réponses: 4
    Dernier message: 26/06/2006, 22h51
  5. Réponses: 5
    Dernier message: 22/03/2006, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo