[C]copie d'un fichier dans tableau

Discussion dans 'Web, design' créé par lechris, 20 Août 2009.

  1. Offline
    lechris Elite
    Hello,

    j'ai un problème avec un exercice sur la copie d'un fichier txt dans un tableau. Je n'arrive pas a le faire :)

    Voici ce que j'ai tapé mais ca ne fonctionne pas :p

    Si qlq1 sait m'aider c'est cool, j'ai exam demain :)

    PHP:
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>

    #define A         "a.txt"

    int main()
    {
        
    char nom[10];
        
    int tab[100];
        
    int i=0;
        
        
    FILE *fp;
        
        if((
    fp fopen(A,"rt")) == NULL)
        {
               
    printf("Erreur a l'ouverture du fichier");
               
    getch();
               exit(
    1);
        }
        
        for (
    i=0i<5;i++)
        {
             
    fscanf(fp,"%d",tab[i].nom);
             
    printf("%d",tab[i].nom);
        }
        
    getch();
    }
    Merciii
    lechris, 20 Août 2009
    #1
  2. Offline
    Hulk :v
    je suis loin d'être une star en C, mais il me semble que tu fais pas de fopen avant de lire ton fichier. Tu le fais seulement dans le cas de l'erreur.
    Hulk, 20 Août 2009
    #2
  3. Offline
    lechris Elite
    Si cette partie la est bonne, si je me contente d'ouvrir le fichier et de le lire sans copier dans un tableau sa fonctionne très bien comme ca...

    c'est dans cette partie la qu'il y a une/des erreurs:

    for (i=0; i<5;i++)
    {
    fscanf(fp,"%d",tab.nom);
    printf("%d",tab.nom);
    }
    lechris, 20 Août 2009
    #3
  4. Offline
    SirSmokeALot Touriste
    Ca fait longtemps que je n'ai plus fait de c, mais à première vue le problème viendrait d'ici:

    tab.nom

    Tu viens d'un langage plus fortement objet?
    tu devrais peut être faire un tableau a 2 dimensions genre "char tab[100][10]" qui te stockent 100 noms d'une longueur max de 10 char et ton for donnerait ceci:

    for (i=0; i<5;i++)
    {
    fscanf(fp,"%d",tab);
    printf("%d",tab);
    }

    Mais va d'abord voir un tuto peut etre parce que
    char nom[10];
    int tab[100];

    tab.nom

    c'est pas bon et ca veut dire que t'as pas compris qqchose!
    http://melem.developpez.com/langagec/initc/
    http://c.developpez.com/cours/

    Voila, je ne suis pas du tout calé en C mais j'espère que ca t'aidera :)
    SirSmokeALot, 20 Août 2009
    #4
  5. Offline
    lechris Elite
    Je regarde ca tantot, je vous dis quoi.

    Merci
    lechris, 20 Août 2009
    #5
  6. Offline
    ailless Asimov, Sagan, Carlin, Hitchens
    montre le fichier a.txt

    ton define ne sert à rien
    ailless, 21 Août 2009
    #6
  7. Offline
    ailless Asimov, Sagan, Carlin, Hitchens
    aïe pas vu la date, dsl :)
    ailless, 21 Août 2009
    #7