Chaine dans une fonction en C
Résolu
twiiiix
Messages postés
342
Statut
Membre
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Salut à tous
je programme en C depuis peut et je voudrais savoir comment renvoyer un chaine de caractère dans une fonction Fopen. Pour l'instant j'ai ça:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char* userprofile=getenv("userprofile");
if (userprofile) {
printf(userprofile);
}
return 0;
}
est mon but étant de créer mon fichier sur le bureau j'obtiens donc le chemin du fichier utilisateur dans la chaine"userprofile"
pourais-je faire quelque chose comme ça ?
FILE* fichier = NULL;
fichier = fopen("userprofile\\desktop\\test.txt", "r+");
comment remplacer userprofile par sa valeur ?
Merci d'avance.
je programme en C depuis peut et je voudrais savoir comment renvoyer un chaine de caractère dans une fonction Fopen. Pour l'instant j'ai ça:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char* userprofile=getenv("userprofile");
if (userprofile) {
printf(userprofile);
}
return 0;
}
est mon but étant de créer mon fichier sur le bureau j'obtiens donc le chemin du fichier utilisateur dans la chaine"userprofile"
pourais-je faire quelque chose comme ça ?
FILE* fichier = NULL;
fichier = fopen("userprofile\\desktop\\test.txt", "r+");
comment remplacer userprofile par sa valeur ?
Merci d'avance.
Configuration: Windows 7 Firefox 3.5.7
A voir également:
- Chaine dans une fonction en C
- Fonction si ou - Guide
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- Chaine radio - Télécharger - Médias et Actualité
- Fonction remplacer dans word - Guide
- Chaine sport france tv - Guide
5 réponses
Il suffit de contruire une chaîne de caractères par concaténation du contenu de 'userprofile' et de "\\desk..."". Pour cela utiliser les fonctions 'strcpy' et 'strcat' sans oublier d'allouer l'espace nécessaire pour recevoir le résultat. Ne surtout pas utiliser la variable 'userprofile' pour effectuer la concaténation.
Nota: il faut tester 'userprofile après l'appel à 'getenv' car si la chaîne "userprofile" n'est pas trouvée... je crains la catastrophe (en fait je ne crains rien, mais je suis sûr de la catastrophe!).
Bonne continuation.
Nota: il faut tester 'userprofile après l'appel à 'getenv' car si la chaîne "userprofile" n'est pas trouvée... je crains la catastrophe (en fait je ne crains rien, mais je suis sûr de la catastrophe!).
Bonne continuation.
j'ai fait ça :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char* userprofile=getenv("userprofile");
printf(userprofile);
char* temp = "\\desktop\\test.txt";
char* chn = malloc (sizeof(userprofile) + sizeof(temp) + 1);
strcpy (chn, userprofile);
strcat (chn, temp);
FILE* fichier = NULL;
fichier =fopen (chn, "w");
return 0;
}
mais a l'exécution j'usqu'au printf ça marche puisque l'adresse de mon dossier utilisateur s'affiche puis après j'ai une erreur :
"Process terminated with status -1073741819 (0 minutes, 6 seconds)"
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char* userprofile=getenv("userprofile");
printf(userprofile);
char* temp = "\\desktop\\test.txt";
char* chn = malloc (sizeof(userprofile) + sizeof(temp) + 1);
strcpy (chn, userprofile);
strcat (chn, temp);
FILE* fichier = NULL;
fichier =fopen (chn, "w");
return 0;
}
mais a l'exécution j'usqu'au printf ça marche puisque l'adresse de mon dossier utilisateur s'affiche puis après j'ai une erreur :
"Process terminated with status -1073741819 (0 minutes, 6 seconds)"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question