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
| #include <stdio.h>
#include <stdlib.h>
#include "fichier_init.h"
unsigned long cpt_lignes(FILE *fp) {
char ligne[1024 + 1];
unsigned long cpt;
unsigned long pos;
pos=ftell(fp); // Mémoriser position
rewind(fp); // Rembobinage
for (cpt=0; fgets(ligne, 1024 + 1, fp) != NULL; cpt++); // Compter les lignes
fseek(fp, pos, SEEK_SET); // Revenir à la position (ainsi la fonction laisse le fichier dans le même état)
return cpt; // Renvoyer le nb de lignes
}
int enregistrerLien(int T[], int nbre)
{
struct lien couple;
size_t i;
FILE *fichier_graphe;
unsigned long nb_lignes;
fichier_graphe = fopen("fichier_des_liens.txt", "a+");
if (fichier_graphe == NULL)
{
printf("ERREUR D'OUVERTURE DU FICHIER fichier_des_liens.txt\n\n");
return -1; // Ou alors tu veux quand-même écrire dans un fichier qui n'a pas été ouvert !!!!!
}
nb_lignes=cpt_lignes(fichier_graphe);
for(i=0; i<(nbre-1); i++) {
couple.compo1 = T[i];
couple.compo2 = T[i+1];
couple.numerolien = nb_lignes++;
fprintf(fichier_graphe, "%d ; %d %d\n", couple.compo1, couple.compo2, couple.numerolien);
// Ce serait pas plus simple d'écrire directement fprintf(fichier_graphe, "%d ; %d %d\n", T[i], T[i+1], nb_lignes++); ???
}
fclose(fichier_graphe);
return 0;
} |
Partager