Rechercher : dans
Par :

C / fonction fopen

Dernière réponse le 4 jan 2009 à 22:49:17 Loxi, le 4 jan 2009 à 20:27:48 
 Signaler ce message aux modérateurs

Bonsoir a tous !!

Voila j'ai un problème bien ennuyeux avec la fonction fopen

elle s'utilise normalement ainsi : fichier = fopen("test.c", "a");

mais je désirerait que test.c et a (dans mon exemple) soit des variables de types char que je peux definir avant, soit :

char nomfichier[128];
char mode ouverture[4];
fgets(nomfichier, sizeof nomfichier, stdin);
fgets(modeouverture, sizeof modeouverture, stdin);
fichier = fopen(nomfichier, modeouverture);

Seulement, il n arrive pas a ouvrir le fichier que je demande, a chaque coup et peut importe les paramètres :(

Que manque t'il ? est-ce une histoire de pointeurs?

Merci de votre aide !!

Configuration: Windows Vista
Firefox 3.1

Meilleures réponses pour « C / fonction fopen » dans :
Les fonctions en C++ : surcharge et paramètres par défaut. VoirLes fonctions en C++ : surcharge et paramètres par défaut. 1. La surcharge de fonctions et méthodes de classes, dont le constructeur 2. Utilisation des paramètres par défaut En C++, une même fonction ou méthode de classe peut être...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

chuka, le 4 jan 2009 à 22:04:31

Salut,
en faisant cela ça fonctionne....c'est la fonction fgets qui fout un peu le bordel....
int main()
{FILE*fp;
char nomfichier[128];
char mode[4];
printf("nom\n\r");
gets(nomfichier);
printf("mode\n\r");
gets(mode);
fp=fopen(nomfichier,mode);
...
....
fclose(fp);
return 1;
}
J'espere ça pourra t'aider... Sur un malentendu, ca peut marcher!!

Répondre à chuka

2

Loxi, le 4 jan 2009 à 22:46:25

Voila mon code qui foire encore : le message d'erreur est sur l ouverture du fichier et il me renseigne comme nom de fichier le mode que j ai choisi...bizarre



int dev()
{
FILE* fichier = NULL;

char dir[128];
char mode[4];
char texte[10000] = {0};

printf("nom\n\r");
gets(dir);
printf("mode\n\r");
gets(mode);

fichier = fopen(dir, mode);
if (fichier != NULL)
{
fgets(texte, sizeof texte, stdin);
fprintf(fichier, "%s", texte);

fclose(fichier);
}

else
{
printf("\nImpossible d'ouvrir le fichier %s", dir);
}
}

Répondre à Loxi

3

 Loxi, le 4 jan 2009 à 22:49:17

Mea culpa ca fonctionne bien, je ne sais pas trop ce qui a changé mais ca fonctionne !

Merci grandement a toi :)

code :

int dev()
{
FILE* fichier = NULL;

char dir[128];
char mode[4];
char texte[10000] = {0};

printf("nom\n\r");
gets(dir);
printf("mode\n\r");
gets(mode);

fichier = fopen(dir, mode);
if (fichier != NULL)
{
fgets(texte, sizeof texte, stdin);
fprintf(fichier, "%s", texte);

fclose(fichier);
}

else
{
printf("\nImpossible d'ouvrir le fichier %s", dir);
}
}

Répondre à Loxi
Collection CommentÇaMarche.net