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 9813 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 :)
A voir également:

9 réponses

ibtihel hassine
 
svp ,quel q'un me répond je suis obligé d'envoyer ce travaux aujourd'hui et merci d'avance . :)
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Tu donnes trop peu d'information pour que l'on puisse t'aider...
Comment calculer le cout par exemple. Soit plus clair.
0
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
ibtihel aaa
 
salut ,svp Monsieur et mes dames répondez moi c'est urgent . :)
0

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

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Et tu bloques où exactement ?
essai d'être plus concret, mais un morceau de code. Là, tu es très abstrait.
0
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
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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
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
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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