Bonjour, je fais un projet de gestion de note en c, j'ai fais une fonction qui permet de modifier une ligne d'un fichier cependant, je ne comprends pas pourquoi la fonction rename présente à la toute fin de mon programme qui doit renommer mon fichier temp en fichier groupe ne fonctionne pas. Merci beaucoup !! Mes fonctions nettoyage choix et menu fonctionne correctement.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include "CHOIX.h"
#include "NETTOYAGE.h"
#include "MENU.h"
void MODIFIER(void)
{
float note[10];
FILE *p;
FILE *temp;
int n,i;
char NOM[20], groupe[10], fin[5]=".txt", ligne[100]= {0}, ligne2[100]= {0}, notecar [10][50]= {0};
char *token;
int compare, test, nbnote=0;
printf("Donnez votre classe\n");
fflush(stdin);
gets(groupe);
strcat(groupe,fin);
printf("Modifier des notes? O/N\n");
while(CHOIX()=='O')
{
system("cls");
p=fopen(groupe, "r");
if(p==NULL)
{
printf("erreur, groupe innexistant");
MENU();
}
else
{
printf("\nSaisir le nom de l'eleve : \n");
fflush(stdin);
gets(NOM);
NETTOYAGE(NOM);
do
{
fgets(ligne, 100, p);
printf("La ligne est : %s ", ligne);
strcpy(ligne2, ligne);
temp=fopen("TEMP.txt", "a");
token = strtok(ligne, ";"); //séparation de la chaine
i=0;
while(token != NULL)
{
strcpy(notecar[i], token);//copie de token dans le tableau note
//printf("le token est : %s\n", token);
i++;
token = strtok(NULL, ";");
}
compare=strcmp(notecar[0], NOM);
if(temp==NULL)
{
printf("erreur");
}
else
{
if (compare!=0)
{
fprintf(temp, ligne2);
//fprintf(temp, "1 chellooou\n");
}
//fprintf(temp, "2 bizarrre\n");
}
//printf("notecar[0] = %s", notecar[0]);
//fprintf(temp, "3wtttfff\n");
}
while(compare!=0 && !feof(p));
if (!compare)
{
i=0;
test=strcmp(notecar[0], "\0");
printf("\nnotes de l'eleve : \n\n");
while(test!=0)
{
note[i]=atof(notecar[i+1]);
printf("note %i = %.2f\n", i+1, note[i]);
i++;
test=strcmp(notecar[i+1], "\0");
nbnote=nbnote+1;
}
printf("\n Saisir le nv nombre de note de cette eleve : \n");
scanf(" %d", &n);
for(i=0; i<n; i++)
{
printf("Saisir la nouvelle note n.%d : ", i+1);
scanf(" %f", ¬e[i]);
while(note[i]<0||note[i]>20)
{
printf("\n\n\t\t\t!!attention les notes doivent etre comprise entre 0 et 20!!\n\n");
printf("Saisir la note n.%d : ", i+1);
scanf(" %f", ¬e[i]);
}
}
fprintf(temp, "%s;", NOM);
for(i=0; i<n; i++)
{
fprintf(temp, "%f;", note[i]);
}
fprintf(temp, "\n");
while (!feof(p))
{
fgets(ligne, 100, p);
//printf("\n\nLa ligne der est %s", ligne);
fprintf(temp, ligne);
}
fprintf(temp, "\n");
}
else
{
printf("eleve innexistant, appuyer sur n'importe quelle touche pour continuer");
getch();
system("cls");
MENU();
}
}
//printf(" groupe = %s", groupe);
fclose(p);
fclose(temp);
remove(groupe);
rename("TEMP", groupe);
printf("TEST");
getch();
printf("\nSaisir les notes d'un nouvel eleve? O/N\n");
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.