Remplissage d'un fichier

Résolu
ibtihel aaa Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, pouvez vous m'aidez pour remplir un fichier d'entrée (en c++) ,ce fichier contient les sommets et les couts d'un graphe complet par exemple on a un graphe G de 3 sommets 1,2,3
1,2 13 c'est a dire le cout de l'arête entre le sommet 1 et le sommet 2 est égale à 13 etc
2,3 15 ...........................................
1,3 56.....................................................
et merci d'avance :)

9 réponses

  1. ibtihel hassine
     
    svp ,quel q'un me répond je suis obligé d'envoyer ce travaux aujourd'hui et merci d'avance . :)
    0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    Tu donnes trop peu d'information pour que l'on puisse t'aider...
    Comment calculer le cout par exemple. Soit plus clair.
    0
  3. ibtihel aaa
     
    bonsoir,
    les coûts doivent être initialement entrée par l'utilisateur,(initialement le graphe est non orienté).par la suite, chaque arête non orienté est remplacée par deux arêtes orientées et le coût de l'arête entre les deux sommets P et Q est égal à Brut(p,q)*100/Brut(p,p).
    0
  4. ibtihel aaa
     
    salut ,svp Monsieur et mes dames répondez moi c'est urgent . :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Et tu bloques où exactement ?
    essai d'être plus concret, mais un morceau de code. Là, tu es très abstrait.
    0
  7. ibtihel aaa
     
    c'est ça mon code je sais pas comment remplie la matrice a partir de fichier qui est entrain de lire ligne par ligne
    #include <string.h>
    #include <malloc.h>
    #include <iostream.h>
    #include <fstream.h>
    #include <iomanip.h>
    Using namespace std ;
    Int main(void)
    {
    double s1 ,s2 ,poid ;
    int n;
    cout << "Entrez un nombre positif : ";
    cin >> n;
    if (n<0) cerr << "Erreur: Le nombre " << n
    << " n'est pas positif " << endl;
    else cout << "Vous avez entré " << n << endl;
    return 0;
    M= malloc (sizeof (int n)) ;
    For ( int i=0 ;i<n ;i++ )
    {
    M[i]= malloc (sizeof (n)) ;
    For ( int j=0 ;j<n ;j++ )
    {
    M[i][j]=0
    }
    }
    ofstream flux ;
    ofstream fichier( "donnee.txt ") ;
    If (fichier)
    {
    for(int k=0 ; k<n ;k++ )
    {
    cout << "Tapez la valeur de s1 : ";
    cin >> s1;
    cout << "Tapez la valeur de s2 : ";
    cin >> s2;
    cout << "Tapez la valeur de poid : ";
    cin >> poid;
    }
    fichier<< s1 <<" "<< s2 <<" "<< poid <<endl ;
    }
    Else
    {
    cerr « " impossible d'ouvrir le fichier " ;
    }
    fichier.close();
    Return 0 ;
    }
    ifstream fichier("donnees.txt");

    if(fichier)
    {
    //L'ouverture s'est bien passée. On peut donc lire

    while(fichier) //Tant qu'on n'est pas a la fin
    {
    string ligne;
    getline(fichier, ligne); //On lit une ligne

    cout << ligne << endl; //Et on l'affiche dans la console

    }
    }
    else
    {
    cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl;
    }

    fichier.close();

    return 0;

    }
    svp j'ai besoin de votre réponse et merci b1 :)
    0
  8. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    M= malloc (sizeof (int n)) ;
    n'importe quoi ! ce n'est pas commen ça qu'il faut faire. en plus, en C++, on utilise new et pas malloc:
    M=new int*[n];
    Tu as une matrice n*n, comment veux tu la remplir avec 3 données ?
    je ne vois pas la déclaration de M.
    0
  9. ibtihel aaa
     
    voici une autre explication pour mon problème :
    pour un graphe de trois sommets le fichier est de cette forme
    1,1 10
    1,2 30
    1,3 43
    2,2 12
    2,1 24
    2,3 60
    3,3 70
    3,1 68
    3,2 90
    1 ,2 et 3 sont les sommets et 10,30,43....90 sont les coûts respectivement entre les arêtes (1,1) , (1,2),(1,3)...(3,2)
    comment après une lecture du fichier peut-on remplir une matrice contenant les coûts entre les sommets on respectant l'ordre présenté par le fichier .par exemple M[1][1]=10. :)
    0
  10. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    plus clair
    for(int k=0 ; k<n ;k++ )
    {
    cout << "Tapez la valeur de s1 : ";
    cin >> s1;
    cout << "Tapez la valeur de s2 : ";
    cin >> s2;
    cout << "Tapez la valeur de poid : ";
    cin >> poid;
    }
    fichier<< s1 <<" "<< s2 <<" "<< poid <<endl ;
    M[int(s1)][int(s2)]=poid;
    } 

    0