[C] Tableau dans un fichier
achrafcabiste
Messages postés
10
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
est ce qu'il ya quelqu'un qui peut me donner un programme en language c qui creér un fichier qui contient un tableau de type entier , mais aussi comment ouvrire ce fichier et accedé a un element par leur indice et mettre a jour ce tableau. merci d'avance.
est ce qu'il ya quelqu'un qui peut me donner un programme en language c qui creér un fichier qui contient un tableau de type entier , mais aussi comment ouvrire ce fichier et accedé a un element par leur indice et mettre a jour ce tableau. merci d'avance.
A voir également:
- [C] Tableau dans un fichier
- Fichier bin - Guide
- Tableau word - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
2 réponses
Voici un petit exemple de ce que tu peux faire pour lire des entiers au clavier et les enregistrer dans un fichier :
Exemple d'écriture
Exemple de lecture
Essaye de faire quelque chose avec cette exemple et poste à nouveau si tu as besoin d'aide
Exemple d'écriture
#include <stdio.h>
main()
{
char nomfic[21];
int n, lectureok;
FILE * sortie;
printf("Nom du fichier a creer : ");
scanf("%20s", nomfic);
sortie = fopen(nomfic, "w");
do
{
printf("Donnez un entier : ");
lectureok=scanf("%d", &n);
if (lectureok==1) fprintf(sortie, "%d\n", n);
}
while (lectureok==1);
fclose(sortie);
}
Exemple de lecture
#include <stdio.h>
main()
{
char nomfic[21];
int n, lectureok;
FILE * entree;
printf("Nom du fichier a lister : ");
scanf("%20s", nomfic);
entree = fopen(nomfic, "r");
do
{
lectureok=fscanf(entree, "%d", &n);
if (lectureok==1) printf("%d\n", n);
}
while (lectureok==1 && fgetc(entree)!=EOF);
fclose(entree);
}
Essaye de faire quelque chose avec cette exemple et poste à nouveau si tu as besoin d'aide
Je pense que ca devrait le faire. Attention de bien séparer tes entiers par des tabulations dans ton fichier texte.
#include <stdio.h>
#define TAILLE 32
int main(int argc, char *argv[])
{
FILE * entree;
char ligne[TAILLE];
char cChaineFile[TAILLE];
char *decoupage;
int *tableau;
int i, tailleTab, choix, valeur;
printf("Donnez le nom du fichier à analyser : ");
fgets(cChaineFile, sizeof cChaineFile, stdin);
/*La chaine contient le retour chariot, il faut donc le supprimer*/
cChaineFile[strlen(cChaineFile)-1] = '\0';
entree = fopen(cChaineFile, "r");
if(entree == NULL){
printf("Le fichier spécifié n'existe pas\n");
system("PAUSE");
return -1;
}
tableau = (int *)calloc(1, sizeof(int));
decoupage = NULL;
i = 0;
while (fgets(ligne,TAILLE,entree) != NULL){
decoupage = strtok (ligne, "\t");
if(decoupage != NULL){
tableau[i++] = atoi(decoupage);
}
while((decoupage = strtok(NULL, "\t")) != NULL){
tableau = (int *)realloc(tableau, (i+1) * sizeof(int));
tableau[i++] = atoi(decoupage);
}
}
fclose(entree);
tailleTab = i;
printf("Donnez l'indice de l'entier à modifier : ");
scanf("%d", &choix);
if(choix < 1 || choix > tailleTab){
printf("L'indice n'est pas situé entre 1 et %d\n", tailleTab);
system("PAUSE");
return -2;
}
printf("Donnez le nouvel entier : ");
scanf("%d", &valeur);
printf("Ancienne valeur : %d à la position %d\n", tableau[choix-1], choix);
tableau[choix-1] = valeur;
entree = fopen(cChaineFile, "w");
for(i=0;i<tailleTab;i++)
fprintf(entree, "%d\t", tableau[i]);
fclose(entree);
system("PAUSE");
return 0;
}
maintenant je fait faire un autre programme et accéder a l'une de ces entiers par leur position et afiche ce entier , aprés je le modifier par un autre entiers
exemple : dans mon fichier j'ai les listes suivantes : 10 35 25 40 15 5
mois je veux par exemple acceder a la position 2 , a l'ecution le programme affiche l'entier qui a la position 2 c'est 25
apres je modifier 25 par 55 par exemple
le fichier devient 10 35 55 40 15 5
et voila c'est fini.
en tout cas merci , c'est gentil.