Probleme en C

Fermé
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 - 16 janv. 2010 à 23:57
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 - 17 janv. 2010 à 00:54
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:07
SVP
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 janv. 2010 à 00:15
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:21
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 janv. 2010 à 00:26
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:38
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:41
c'est quoi une concaténation ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 janv. 2010 à 00:42

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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:44
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:47
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 jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 54
17 janv. 2010 à 00:54
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