Open( choix d'un .txt) ?
Résolu
flop
-
flop -
flop -
Bonjour,
est-il possible via la fonction
open( **********, O_RDONLY) ;
de remplacer les ********** par une chaine de caractère portant le nom du fichier.txt a ouvrir ?
me permettant ainsi de laissez le choix du dossier a ouvrir a l'utilisateur !
un exemple me serais d'une grande aide si cela s'avère possible !
merci de votre aide future !!
est-il possible via la fonction
open( **********, O_RDONLY) ;
de remplacer les ********** par une chaine de caractère portant le nom du fichier.txt a ouvrir ?
me permettant ainsi de laissez le choix du dossier a ouvrir a l'utilisateur !
un exemple me serais d'une grande aide si cela s'avère possible !
merci de votre aide future !!
1 réponse
-
Bonjour,
Oui, c'est possible.
Exemple : open("toto.txt", O_RDONLY);
Note : pourquoi utiliser la fonction open() et non fopen() ? fopen() est une fonction standard contrairement à l'autre.
Cdlt,-
Bonsoir fiddy !
Je me suis mal exprimé .
Imaginons que l'utilisateur a un choix a faire .
Si il tape 1 le fichier1.txt sera ouvert , si il tape 2 ce sera le fichier2.txt et ainsi de suite .
Moi je cherche a savoir si il est possible de remplacer toto.txt par le nom de sa chaine de caractère .
Je cherche a faire ceci en reprenant ton exemple .
Char truc[8] = "toto.txt" ;
....
Open(truc ,O_RDONLY);
A présent pour illustrer mon objectif rapidement
If ( utilisateur tape 1)
Truc[8] = "fichier1.txt'" ;
If ( utilisateur tape 2)
Truc[8] = "fichier2.txt"
Open(truc ,O_RDONLY)
Possible de faire sa ? -
Oui possible.
char truc[8+1]; /*ne pas oublier de compte le caractère de fin*/ int d; int ret; printf("nb="); ret=scanf("%d",&d); if(ret==1 && d>0 && d<10) { int fd; sprintf(truc, sizeof truc, "toto%d.txt", d); fd=open(truc, O_RDONLY); /**/ close(fd); }
Je n'ai pas testé, il y a peut-être une erreur qui s'est glissée...
Et je répète : pourquoi ne pas utiliser fopen() au lieu de open() ??? -
-
-
et pour finir je rencontre un problème avec sprintf
(lui non plus j'ai pas l'habitude de l'utilisé )>
level remplace truc dans ton exemple .
warning: passing argument 2 of `sprintf' makes pointer from integer without a cast [enabled by default]
sprintf(level, sizeof level, "map_%d.txt", d);
<
une dernière aide ? normalement après sa j'ai fini mon programme !
merci beaucoup ;-)
-