× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 direction du fichier dans un fopen AIDE :)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
juliendeparis
  Posté le 08/06/2006 @ 14:02 
Aller en bas de la page 
Nouvel astucien
bonjour, voila j'aimerai savoir si il est possible d'inserer une variable dans la direction d'un fopen. exemple : void ajoutobservation(int numeroID){ observ observation; FILE *fichier; clrscr(); fichier=fopen("c:\\observation\\(insertion de la variable numeroID).txt","a"); ....} ce qui donnerai donc pour "numeroID=1" le chemin suivant : "c:\\observation\\1.txt" merci de votre aide.
Publicité
koala01
 Posté le 08/06/2006 à 19:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, C'est tout à fait possible, du simple fait que fopen prend un pointeur de type caractère en premier argument… Il "suffit" donc de créer un tableau de caractères (AKA une chaine de caracteres, en C) en fonction d'argument passés, et avec l'aide, entre autre, de strcat… La seule chose à laquelle il faudra bien veiller, c'est à ce que le tableau destiné à recevoir la chaine finale soit suffisemment long pour accueillir l'ensemble des caractères de cette chaine [clindoeil] un petit exemple [code] int Lecture(char *filename) { //un tablau temporaire char buffer[512]="c:\\le_chemin\\qui_ne_bouge_pas\\"; //ajout du nom de fichier strcat(buffer,chaine); //n'oublions pas l'extension (il serait *idéalement* pas mal de penser à vérifier si c'est nécessaire) strcat(buffer,".txt"); //"yapluka" ouvrir le fichier fichier=fopen(buffer,"a"); //et a travailler dessus [clindoeil] }[/code] Selon moi, il parrait intéressant de renvoyer une valeur qui permettra de déterminer si cela a réussi ou non (1=ok,0=nok, par exemple [clindoeil])… Comme les booléens n'existent pas en C… faisons avec [clindoeil]

Modifié par koala01 le 08/06/2006 19:30
koala01
 Posté le 08/06/2006 à 19:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Juste un truc encore: Dans le cas où le parametre passé ne serait pas de type "chaine de caractères", il faudra veiller à le transformer pour qu'il le devienne… il *me semble" (personnellement, à moi tout seul) que cette transformation devrait, pour la facilité, etre effectuée AVANT l'appel de la fonction, ce qui permet d'utiliser la fonction avec des valeurs "préétablie"(une chaine de caractère en parametre), alors que, si à un moment, tu as besoin de la fonction avec un entier, que tu la crée pour un entier, et qu'apres tu as besoin de la meme fonction pour un réel, tu te retrouveras avec deux fonctions qui font exactement la meme chose, mais avec un nom différent (du fait que la surcharge des arguments n'est pas autorisée en C)[langue]
AlexPrince
 Posté le 08/06/2006 à 21:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
[code]char buffer[MAX_PATH + 1] = {0}; snprintf(buffer, MAX_PATH, "c:\whatever\whoever\\%s.txt", "bleh");[/code] Buffer devrait donc contenir ici "c:\whatever\whoever\bleh.txt" et le '\\0' de fin de chaîne habituel.
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
GratuitJeu PC Totally Reliable Delivery Service gratuit
Valable jusqu'au 09 Avril

Epic Game Store offre actuellement le jeu PC Totally Reliable Delivery Service. Bouclez votre corset orthopédique et faites rugir le moteur du camion, c'est l'heure de livrer ! Jouez avec jusqu'à trois de vos amis et essayez tant bien que mal de faire votre travail dans un monde interactif en mode « sandbox ».


> Voir l'offre
20,90 €Microsoft Office Professionnel 2016 Plus à 20,90 €
Valable jusqu'au 15 Avril

Le vendeur sérieux DIGITAL FR sur Amazon propose la clé d'activation légale pour Microsoft Office Professionnel 2016 Plus en français à 20,90 €. Cette clé livrée par email vous permettra d'activer Microsoft Office Professionnel 2016 Plus légalement et vous permettra ainsi d'utiliser autant de temps que vous voulez (il s'agit de la version complète et pas d'un abonnement) Word,Excel, PowerPoint, OneNote, Outlook, Publisher et Access 2016 sur un PC. La clé sera à activer sur Office.com où vous pourrez ensuite télécharger toute la suite bureautique. Si la version 2019 fonctionne uniquement avec Windows 10, cette version 2016 fonctionne avec Windows 7, Windows 8 et Windows 10 !


> Voir l'offre
332,62 €TV 50 pouces Toshiba 50UA3A63DG UHD 4K à 332,62 €
Valable jusqu'au 12 Avril

Cdiscount fait une promotion sur la télévision Ultra Haute Definition 4K Toshiba 50UA3A63DG qui passe à 332,62 € au lieu de 419 €. Cette TV de 50 pouces (126 cm) offre une résolution 4K de 3840x2160 pixels. Elle possède un Tuner TNT HD, 2 ports USB et 4 ports HDMI. Elle est compatible HDR Dolby Vision, Google Assistant et tourne sous Android TV (vous pourrez lui installer des applications via Google Play : Netflix, YouTube, MyCanal, Molotov, Disney+, Plex, etc)


> Voir l'offre

Sujets relatifs
Convertir un fichier d'aide .HLP en .HTML par
Comment lire un texte dans un zipped fichier
aide pour fichier .bat
recherche de texte dans un fichier excel
Sauvegarder un fichier dans un repertoire precis
Lecture et écriture dans un fichier
langage C: recherche dans un fichier
Sauvegarder dans un fichier en C
Comment mettre un temps dans un Script
Comment exclure 0 dans une fonction
Plus de sujets relatifs à direction du fichier dans un fopen AIDE :)
 > Tous les forums > Forum Autres langages