Probleme de chemin absolu
boralex9
Messages postés
2
Statut
Membre
-
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Je me trouve devant un problème assez fatiguant à résoudre ( 5h de temps passées à essayer tout seul et avec des sites de langue anglaise) qui est que le chemin absolu que je mets en paramètre de fopen ne marche pas ni avec xcode ( " use of undeclared identifier") ni dans sublime text 2 qui sont les IDE que j'utilise.
Je suis sur un mac et même si je ne mets pas le tilde(~) cela ne fonction pas.
j'avais fait l'effort aussi d'insérer lorsque j'utilisais xcode le fichier.txt dans le même dossier que "l'exécutable" même si exécutable n'existe pas sous mac. (peine perdue ça ne marche pas plus)
De toute façon en utilisant un chemin absolu je n'aurais même pas dû faire tout cela.
Donc voilà.
en outre, mon fichier.txt est placé sur le bureau ( j'ai fait ça là histoire de simplifier le chemin pour que vous puissiez tous voir que ce n'est pas une erreur d'écriture de chemin);
Si quelqu'un a une idée bah qu'il n'hésite pas :) merci d'avance !
Voici mon code en C
#include<stdio.h>
#include<stdlib.h>
int main( int argc, char* argv[])
{
FILE* fichier = NULL;
fichier = fopen(~/Desktop/texte.txt, "r+");
if(fichier != NULL)
{
char identite[] = "";
printf(" Qui êtes vous ?\n\n");
scanf("%s", identite);
fprintf(fichier, "Bonjour Monsieur %s", identite);
fclose(fichier);
}
return 0;
}
Je me trouve devant un problème assez fatiguant à résoudre ( 5h de temps passées à essayer tout seul et avec des sites de langue anglaise) qui est que le chemin absolu que je mets en paramètre de fopen ne marche pas ni avec xcode ( " use of undeclared identifier") ni dans sublime text 2 qui sont les IDE que j'utilise.
Je suis sur un mac et même si je ne mets pas le tilde(~) cela ne fonction pas.
j'avais fait l'effort aussi d'insérer lorsque j'utilisais xcode le fichier.txt dans le même dossier que "l'exécutable" même si exécutable n'existe pas sous mac. (peine perdue ça ne marche pas plus)
De toute façon en utilisant un chemin absolu je n'aurais même pas dû faire tout cela.
Donc voilà.
en outre, mon fichier.txt est placé sur le bureau ( j'ai fait ça là histoire de simplifier le chemin pour que vous puissiez tous voir que ce n'est pas une erreur d'écriture de chemin);
Si quelqu'un a une idée bah qu'il n'hésite pas :) merci d'avance !
Voici mon code en C
#include<stdio.h>
#include<stdlib.h>
int main( int argc, char* argv[])
{
FILE* fichier = NULL;
fichier = fopen(~/Desktop/texte.txt, "r+");
if(fichier != NULL)
{
char identite[] = "";
printf(" Qui êtes vous ?\n\n");
scanf("%s", identite);
fprintf(fichier, "Bonjour Monsieur %s", identite);
fclose(fichier);
}
return 0;
}
A voir également:
- Probleme de chemin absolu
- Absolu puzzle - Forum Réseaux sociaux
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Discord aucun chemin de connexion - Forum Discord
- Impossible de générer de clé privée à partir de openssl_pkey_new. vérifiez votre configuration openssl. le problème peut être lié au chemin vers openssl.cafile. ✓ - Forum Webmastering
- Le chemin d'accès spécifié est introuvable ✓ - Forum Téléchargement
2 réponses
Bonjour,
fichier = fopen(~/Desktop/texte.txt, "r+");
~ est connu par ton OS mais pas par la fonction C. Il faut donc mettre clairement le chemin. De plus, il doit être entre des guillemets ; ce n'est pas une variable.
char identite[] = "";
Cela déclare un tableau d'un char. Tu ne pourras donc pas stocker de caractères avec scanf("%s"). Fais plutôt
Note : merci la prochaine fois d'écrire ton programme entre 2 balises "code c" lorsque tu postes ton code sur CCM.
Exemple :
Ca sera plus lisible.
Cdlt,
fichier = fopen(~/Desktop/texte.txt, "r+");
~ est connu par ton OS mais pas par la fonction C. Il faut donc mettre clairement le chemin. De plus, il doit être entre des guillemets ; ce n'est pas une variable.
char identite[] = "";
Cela déclare un tableau d'un char. Tu ne pourras donc pas stocker de caractères avec scanf("%s"). Fais plutôt
char identite[25];
Note : merci la prochaine fois d'écrire ton programme entre 2 balises "code c" lorsque tu postes ton code sur CCM.
Exemple :
/*ici tu mets ton code*/
Ca sera plus lisible.
Cdlt,
En complément à la réponse de @fiddy et ce que tu souhaites faire @boralex9 ,une simple définition du terme apporte plus de précision
tout d'abord il existe deux types d'écritures bien distinctes qui ont chacune leur spécificité
le chemin relatif & le chemin absolu
Dans ton exemple et ce que tu à fait "@boralex9 " est un chemin relatif comme dit @fiddy propre au système d'exploitation, et cela ne marche pas en langage c , pour que cela fonction il faut utiliser l'autre méthode c'est à dire fournir le chemin complet ou ce trouve le fichier dit chemin absolue.
à bientôt