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
Configuration: Windows XP
Firefox 3.0.11

5 réponses

  1. 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
  2. zantoinef Messages postés 146 Statut Membre 32
     
    C'est bon ??
    0
  3. 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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. 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