Ligne 12 à 23 exécutions. Mais ne fonctionne pas réellement lorsque l'instruction if est ajoutée. il compile et fonctionne. Il demande à la première instruction printf de se terminer lorsque je choisis un caractère. Pourquoi cela se passe-t-il et comment puis-je y remédier?Pourquoi ce code compile-t-il mais ne fonctionne pas?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch, file_name[25];
FILE *fp;
printf("Enter [A] and select file or [X] to exit:"); // Prompt user to select file or exit
scanf("%c",&ch);
scanf("%c",&ch);
if (ch=='A')
{
printf("Enter the file name\n"); // if user chooses 'A' this code should run
gets(file_name);
fp = fopen(file_name,"r"); // reading file
if(fp == NULL)
{
perror("File not found.\n");
exit(EXIT_FAILURE);
}
printf("Contents of %s are:\n", file_name);
while((ch = fgetc(fp)) != EOF)
printf("%c",ch);
}
else if (ch=='X')
{
printf("Exiting program...");
exit(0);
}
}
Pourquoi un code compilable devrait-il fonctionner? Un code d'erreur non-syntaxique ne signifie pas qu'il n'a pas d'erreur logique –