CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Copier fichier ds liste chainée

GbatouHamm10
GbatouHamm10
Niveau 7
17 janvier 2007 à 11:46:58

:salut:

Alors j´ai un prog à faire :

pour l´instant j´ai réussi à copier la liste chainée dans un fichier avec fprintf.

Mais maintenant je dois faire un prog ki lise ce qu´il ya´ dans un fichier, et le mette dans la liste chainée.

La structure contient un nom de réalisateur, un pointeur vers une liste chainée de titres de films, et un pointeur vers la liste chainée de réalisateur.

Quelle fonction utiliser et avantages de cette fonction ? (fscanf, fread, fgets)...

Je sais juste ke je dois utiliser un fichier binaire, c´est + pratique pour les tailles des mots.

:merci: beaucoup de m´aider

Fvirtman
Fvirtman
Niveau 10
17 janvier 2007 à 12:20:24

Précise le format exact de ton fichier a relire.

Si c´est un fichier binaire, il faudra faire des fread, oublie fscanf, qui est pour les fichiers texte.

Si je comprends bien, apres, tu veux y ranger dans un truc comme ça :

struct film
{
char nom[80];
struct film* next;
};

struct realisateur
{
char nom[80];
struct film* headfilm;
struct realisateur* headlist;
struct realisateur* next
};

GbatouHamm10
GbatouHamm10
Niveau 7
17 janvier 2007 à 12:59:08

exactement, sauf ke c une liste simplement chainée. J´vais p-e la mettre en doublement chainée.

typedef struct Film* film;

struct Film
{
char titre[40];
film filmNext;
};

typedef struct Realisateur* realisateur;

struct Realisateur
{
char real[20];
film filmNext;
realisateur realisateurNext;
};

Je vais devoir utiliser un fichier binaire, donc je vais devoir enlever aussi le fprintf si je comprend bien.

merci. je vais essayer d´avancer :ok:

Fvirtman
Fvirtman
Niveau 10
17 janvier 2007 à 13:28:57

ben disons que c´est toi qui choisit ! soit tu écris en texte, soit en binaire !
Quoiqu´il en soit, si tu écris d´une façon, il faut relire de la meme façon !

je te parlais de binaire suite a ta remarque :
"Je sais juste ke je dois utiliser un fichier binaire"

Mais as tu déja écrit le fichier ? ou pas encore ?
Et si tu l´as écrit, de quelle façon l´as tu écrit ? dans quel ordre ? (seule façon de savoir comment le relire !)

GbatouHamm10
GbatouHamm10
Niveau 7
17 janvier 2007 à 14:36:35

Voici ma procédure de copie de la lsite ds un fichier

void copie(FILE *fichier, realisateur pp)
{if (strcmp("0",pp->real) && (pp->real))
{fprintf(fichier,"=> %s \n",pp->real);
if(pp->filmNext) copie2(fichier,pp->filmNext);}
pp=pp->realisateurNext;
if(pp) copie(fichier,pp);
}

Je vais devoir la changer

On m´a dit que c´était trop difficile avec un fichier texte, car on sait pas la taille des noms.

Mais si je pouvais le faire avec un fichier texte sans probleme, je le ferais.

En fait, le prof ne nous a mm pas expliqué la diff fichier binaire/fichier texte.
Il est jamais là et nous laisse chercher sur le net... Donc desolé pr mon nivo sur les fichiers :-(

Fvirtman
Fvirtman
Niveau 10
17 janvier 2007 à 14:50:56

"On m´a dit que c´était trop difficile avec un fichier texte, car on sait pas la taille des noms"

ça ne gene pas :

Justement, si tu optes pour le fichier texte, fscanf est ton ami.

Il cherche un nom jusqu´a l´espace suivant.
Si tu as des espaces, tu as meme des méthodes pour qu´il te scanne toute une ligne.

regarde mon tuto I.2.2

GbatouHamm10
GbatouHamm10
Niveau 7
17 janvier 2007 à 17:29:22

Merci.
Il a l´air super bien fait ton site, j´le met en marque-pages

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment