Probleme en C

twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je débute dans la programmation C et je voudrais savoir comment créer un dossier/fichier sur le bureau
j'ai essayer ça:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

FILE* fichier = NULL;

fichier = fopen("%HOMEPATH%\\Desktop\\test.txt", "w");

return 0;
}
mais ça n'a pas marché(si je met le nom complet a la place de %HOMEPATH% ça marche)
qu'est-ce qui ne va pas? y-a t-il un autre moyen ?

merci d'avance pour vos réponse.

10 réponses

twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
SVP
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Ceci est normal. %homepath% n'existe dans dans la console et renvoie la valeur de la variable homepath.
Si tu mets ceci en C, il ne le traduira pas. Si tu veux, tu peux néanmoins utiliser la fonction getenv : http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/getenv.3.html

Cdlt,
0
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
Merci de m'avoir répondu mais ce que je cherche a faire c'est créer un dossier ou un fichier le bureau de celui qui lance le programme car je ne connais pas son nom d'utilisateur ou encore l'emplacement de son dossier utilisateur
est-ce qu'il y a quelque chose a écrire pour pouvoir accéder directement au bureau ou au dossier utilisateur ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Je te réponds la même chose que précédemment : getenv(var);
Par exemple getenv(homepath) te renverra un pointeur sur un char contenant la chaîne de caractère que tu t'attendais à avoir en tapant %homepath%. A partir de là, une petite concaténation avec strncat pour mettre "\\Desktop\\..." et le tour est joué.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
ok merci mais le truc c'est que j'ai pas bien compris (je débute si tu pouvais m'expliqué ce qu'il faut que je fasse,j'ai beaucoup avec les pointeur) merci bcp
0
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
c'est quoi une concaténation ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 

const char* homepath=getenv("homepath");
if (homepath) {
puts(homepath);
}

Ce programme mettra la variable d'environnement homepath dans à une adresse pointée par homepath.
Donc, en mettant puts (ou printf), tu peux afficher la valeur de %homepath%.
0
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
Si j'ai bien compris ce programme va créer une variable qui contiens la valeur de homepath ?
0
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
Comment utilisé ce que tu ma monter pour pouvoir l'écrire comme je l'ai montré dans mon premier post ?
0
twiiiix Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   57
 
j'arrive a récupérer le chemin entier (avec printf) mais comment le mettre dans une fonction fopen ????


#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{

const char* userprofile=getenv("userprofile");
if (userprofile) {
printf(userprofile);


}


return 0;
}
0