salut, j'ai une fonction qui permet d'effacer un utilisateur de mon fichier. En realité, il n'est pas supprimé, son etat est mis à "non". Voila le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
void suppuser(void)
{
int ok;
int num;
int choix;
FILE *f;
suser user;
system("cls");
printf("Vous avez decide de supprimer un utilisateur du fichier.");
 
ok=afficheUser();
 
printf("Entrez l'indice de l'utilisateur a supprimer du fichier :");
scanf("%d",&num);
 
//si le num tapé n'est pas compris entre 1 et le nbre d'élèves ds le fichier=>erreur
	while(num<1 || num>ok)
		{
			printf("\nNumero inexistant, recommencez svp :");
			flushall();			
			scanf("%d",&num);
 
		}
	num--;
 
	f=fopen("fichieruser.txt","r+");
	fseek(f,sizeof(user)*(num),SEEK_SET);//on se positionne a l'endroit voulu
	fread(&user,sizeof(user),1,f);//lecture du fichier
 
	printf("\n\n\nVous avez choisi de supprimer l'utilisateur %s\n\n",user.nom);
 
	printf("Etes vous sur(e) ?");
	printf("\n1: oui   2: non\nVotre choix :")
	scanf("%d",&choix);
	if(choix==1)
	{
 
		//printf("On va zaper l'user !");
 
		strcpy(user.etat,"non");
		fseek(f,sizeof(user)*(num),SEEK_SET);
		fwrite(&user,sizeof(user),1,f);//ecriture 
		fclose(f);//fermetrure
		printf("L'utilisateur a bien ete supprime\nTapez une touche pour retourner au menu");
		getch();
		menu();
 
	}
	else
	{
		menu();
	}
 
 
 
getch();
}
La variable ok reçoit le nombre d'utilisateur inscrit dans le fichier qui sont a l'état "oui". Mais j'ai un souci. Par exemple, j'ai 7 personnes dans mon fichier.
Les 5 premiers à "oui", la 6eme à "non", et la 7eme à "oui".
Donc quand j'affiche le tableau (grace a la fontion afficheUser(), il me donne un tableau avec 6 utilisateurs. Mais si je veux supprimer le 6eme, il me positionne sur le 6eme enregistrement du fichier qui est deja à non, et voila mon souci.
Je ne sais pas comment résoudre ce souci, quelqu'un pourrait' il m'aider ?

Sinon ma question est : existe t il une fonction pour sortir d'un programme, j'utilise Microsoft C++, j'ai fais un truc mais ça marche pas vraiment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void degage()
{
	system("cls");
	printf("Tapez pour quitter ...");	
	getch();
 
}
Merci d'avance