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 58 59 60 61 62 63 64 65 66 67 68
|
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h> // ctypes.h
#include <limits.h> // Limits chemin.
#include <string.h>
void Keyboard_CleanStdin(void)
{
int c;
do
{
// Note : si on met stdin la console attendra toujour que l'utilisateur tape entrée, que ce soit
// fgetc ou fgets pour valider.
c = fgetc(stdin);
}while(c != '\n' && c !=EOF);
}
char * Filename_RecoveryInputUser(char *pFilename)
{
fgets(pFilename, PATH_MAX, stdin);
pFilename[strlen(pFilename)-1] = '\0'; // A revoir passé par strchr.
Keyboard_CleanStdin();
return pFilename;
}
FILE *Filename_OpenFile(char *pFilename, char *pMode, char *pErrorMsg)
{
FILE *pFile = fopen(pFilename, pMode); // fopen n'admet pas les '\n'.
if(pFile == NULL)
{
printf("Failed to open file.\n");
if (pErrorMsg != NULL) printf("%s\n", pErrorMsg);
}
return pFile;
}
void Filename_WaitingTxt(void)
{
char pInput[2] = {};
int i = 0;
printf("Tapé entrée pour continuer.\n");
fgets(pInput, 2, stdin);
Keyboard_CleanStdin();
while( pInput[i] != '\n')
{
printf("Tapé entrée pour continuer.\n");
fgets(pInput, 2, stdin);
Keyboard_CleanStdin();
}
}
int main(int argc, char const **argv)
{
freopen("CON", "w", stdout);
char pFilename[PATH_MAX]; // Buffer pour récupérer la saisie utilisateur.
printf("Saisir le nom du fichier.\n");
FILE *pFile = Filename_OpenFile(Filename_RecoveryInputUser(pFilename), "r+", NULL);
fclose(pFile);
Filename_WaitingTxt();
return 0;
} |
Partager