Probleme de fichier

cabisteboy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
cchristian Messages postés 928 Statut Membre -
Bonjour,

pour tout les informaticien qui manipulé bien les fichiers en language c,mois je veux faire un projet .je vais faire mon programme à l'aide d'un tableau de structure qui est initialisé qui contient { nom
prenom
code
entier
}
quant j'execute le programme je donne un mot de passe ,le programme verifié si le mot de passe correspond a l'une de code d'un client , s'il exist on fait des operation(des affectation ou calcule mathematique ) avec l'entier qui correspont a ce code,c'est facile pour faire ca , mais le probleme c'est que aprés faire des operation l'entier qui est initialise va changer et je veux faire mettre a jour cette entier donc je obliger de stoké ces enties dans un fichier,
en supose que le fichier est crée,
mon questin comment accéder a l'entier qui correspond l'indice i (i est lindice du tableau de structure que je fait initialisé) pour faire des opération , on suppose que le premier element de fichier est correspond a T[0].entier et la 2 éme element correspond à T[1] et ect....
aide mois svp et donne mois un exemple de programme pour ce gence de probléme ,
et merci.
A voir également:

2 réponses

cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Tu peux donner un exemple concret, car j'ai un peu de mal à comprendre.
0
cabisteboy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
voila mon probléme a une autre explication,
comment faire accedé a un fichier qui contient des entiers,
le fichier est supposé creé , le probléme c'est que je veux faire un programme en language c et je mettre a jour des entiers, càd les entiers sera changé quand je fait une opération mathematique , et a chaque execution une seule entiers sera changé , c'est ca la mettre a jour des entiers.
exemple:
dans mon fichier j'ai les entiers suivant: 5 65 42 12 10 75 65 80 40 55 (qui est creé)
et dans le programme j'accede a un entier par leur numéro càd l'indice (l'indice de 5 est 0 , l'idice de 65 est 1 ...)
par exemple mois j'ai choisi l'indice 2 qui correspond a 42 et aprés je fait x= (42 - 10) (affectation) et aprés j'affecte x a la place de 42 et voila apres je ferme le fichier, l'idice 2 devient 32.
ceux qui est manipulé bien les fichiers n'hesite bien de me donne un programme en language c pour ce genre de probléme parce que mois j'ai n'acunne ideé sur les fichiers.
et merci.
0
cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Essaie cela et on en discute,

int main() 
{

//  Initialisation des variables et tableaux.
	  int i = 0; 
	  int j = 0; 
const int MAX_TAB = 128;
      char nomfi   [64] = "ch.txtr";      // nom du fichier 
      char i_char  [32] = ""; 

       int TAB_int  [MAX_TAB] = {5, 65, 42, 12, 10, 75, 65, 80, 40, 55,}; 

       FILE*fiche; 

// CHARGEMENT INITIAL DU FICHIER

     fiche = fopen (nomfi, "w"); 

    for (i = 0; i < 25; i++) 
       { 
        _itoa_s( TAB_int [i], i_char, 4, 10 );
         fwrite ( i_char, sizeof (char), 18, fiche );
         printf ( "\n%18s", i_char ); 
       } 
    fclose ( fiche ); 

//--------------------------------------------------------------------	
	
// LECTURE DU FICHIER ET CHARGEMENT DES VALEURS DANS LE TABLEAU. 
	fiche = fopen ( nomfi, "r+" ); 

    for (j = 0;   j < MAX_TAB;      j++)
       { 
        fread  (i_char, sizeof(char), 18, fiche); 
        if (EOF)                                break;
        i = atoi (i_char);
       TAB_int [j]  = i;
        printf ( "\n%18s\n", i_char ); 
     }


// MODIFICATION D'UNE OU PLUSIEURS VALEURS PRESENTES DANS LE TABLEAU 
        j = 2;
        TAB_int [j]  = TAB_int [j]  - 10;
// .....................................
// .....................................


// ECRITURE DU FICHIER AVEC LES VALEURS PRESENTES DANS LE TABLEAU. 
    fclose ( fiche ); 

    fiche = fopen ( nomfi, "w" ); 

    for (i = 0; i < MAX_TAB; i++) 
       { 
         _itoa_s( TAB_int [i], i_char, 18, 10 );
         fwrite ( i_char, sizeof (char), 18, fiche );
        printf ( "\n%18s", i_char ); 
       } 

    fclose ( fiche ); 
    system ( "PAUSE" ); 
    return ( 0 ); 
} 
0