Problème scanf

max -  
DarkAurora Messages postés 443 Statut Membre -
Bonjour,

j'ai un petit soucis avec un scanf et je ne comprend pas pourquoi ! voici le code :

void save (int sig) {

	//on ferme le fichier ouvert
	fclose(fichier);
		
	printf("Conserver le fichier? [Y/n] \n");
	char reponse = 'c';
	scanf("%c",&reponse);
	
	if(reponse=='n'){
		printf("Effacement du fichier\n");
		int r = remove("toto.txt");
		if ( r!= 0){
			printf(" La destruction a échouée !\n"); 
		}
	}else{
		printf("Fichier sauvegardé \n");
	}
	//on quitte le programme
	exit(0);
	
}


impossible d'effacer mon fichier tout passe dans le ELSE même le "n".
Est ce que quelqu'un comprend pourquoi
A voir également:

5 réponses

zantoinef Messages postés 146 Statut Membre 32
 
Salut je mis connais un peu en C maintenant je passe au C++ (POO; galère) essaye d'initialiser ta cariable char de cette façon:
"char reponse = 0 ;"
tout simplement dis-moi normalement sa marche...
0
zantoinef Messages postés 146 Statut Membre 32
 
C'est bon ??
0
max
 
non ca ne change rien
0
tsou
 
Bonjour,

j'ai un petit soucis avec un scanf et je ne comprend pas pourquoi ! voici le code :

void save (int sig) {

//on ferme le fichier ouvert
fclose(fichier);

printf("Conserver le fichier? [Y/n] \n");
char reponse ;
scanf("%c",&reponse);

if(reponse=='n'){
printf("Effacement du fichier\n");
int r = remove("toto.txt");
if ( r!= 0){
printf(" La destruction a échouée !\n");
}
}else{
printf("Fichier sauvegardé \n");
}
//on quitte le programme
exit(0);

}

impossible d'effacer mon fichier tout passe dans le ELSE même le "n".
Est ce que quelqu'un comprend pourquoi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DarkAurora Messages postés 443 Statut Membre 27
 
deux choses vérifie que la bibliothèque stdio.h est inclus dans ton code de plus je comprend pas pourquoi
tu code ceci
printf("Conserver le fichier? [Y/n] \n");
char reponse = 'c';
scanf("%c",&reponse);

déjà tu attribut après la saisie, 'c' à réponse donc forcément après le scanf ce sera toujours reponse='c'

déjà avec

#include <stdio.h>
char c;
printf("Conserver le fichier?[y/n] \n");
scanf("%c",&reponse);

ce sera déjà mieux même si ça n'arrange pas les choses au niveau de la présentation

ensuite soit tu mets un point d'arrêt sur ton if et ton else soit tu met des printf mais je te conseil les points d'arrêts
0