J'ai dis que j'avais changer FILE* nombreFichier=NULL; en char nombreFichier[10];
J'ai dis que j'avais changer FILE* nombreFichier=NULL; en char nombreFichier[10];
char nombreFichier[10]; 10 c'est un peu court pour un nom de fichier, ça ne fait que 9 caractères utiles.
mais c'est le nombre de fichier créer non pas le nom du fichier je me disais aussi mettre un char sur un nombre c'était bizzard.mon code donne
char nombreFichier[10];
char nomFichier[30];
nombreFichier est normalement un nombre enfin logiquement ^^
Pour une valeur numérique entière, un int ou un unsigned int est probablement plus approprié :Envoyé par gaara
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part int nombreFichier;
Code : Sélectionner tout - Visualiser dans une fenêtre à part unsigned nombreFichier;
Testez ce code vous verrez les erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE* Fichier=NULL; char nomDuFichier[30]; unsigned nombreFichier=0; int nIndex = 0; void clean(char *s, FILE *fp); printf("Entrez le nom du fichier à créer : "); fgets(nomDuFichier, sizeof nomDuFichier, stdin); printf("Saisissez le nombre de fichiers à créer : "); fgets(nombreFichier, sizeof nombreFichier, stdin); for (nIndex=1 ; nIndex <= nombreFichier; nIndex++) { if ((Fichier = fopen(nomDuFichier, "w")) != NULL) { // Traitement d'écriture fclose(Fichier); } else { printf("erreur création fichier : %s\n", nomDuFichier); } clean(nomDuFichier, stdin); clean(nombreFichier, stdin); } system("PAUSE"); return 0; } void clean(char *s, FILE *fp) { int c=0; /* search ... */ char *p = strchr (s,'\n'); if (p != NULL) { /* ... and kill */ *p = 0; } else { /* purge */ int c; }while ((c = fgetc(fp)) != '\n' && c != EOF); }
On a vu. Qu'attends-tu pour corriger ?Envoyé par gaara
On t'a donnée des exemples de code, et tu massacres tout... Pourquoi ?
Si tu ne comprends pas quelque chose, pose des questions précises.
Et commence par ecrire précisément l'algorithme avant de coder...
1 - Spécification
Je veux faire quoi ?
2 - Conception
2.1 Algorithme textuel
Decrire le comportement sous forme de texte précis et concis.
2.2 Algorithme en pseudo-code
Traduire l'algorithme textuel en pseudo-langage de haut niveau faisant abstraction des détails d'implémentation
3 Codage
C'est là et seulement là qu'on sort son éditeur et son compilateur favori...
Mais corriger quoi si je demande de l'aide c'est parce que je ne trouve pas!
fgets() sert à saisir une chaîne.
Si tu veux un nombre, soit tu utilises directment scanf("%d"), soit tu saisis une ligne avec fgets() et tu la convertis avec strtol().
Je recommande la seconde solution.
PS: On t'a donné une fonction clean() pour aller avec fgets(). n'hésite pas à l'utiliser.
Pose des questions si tu ne comprends pas.Envoyé par gaara
1°)demander à l'utilisateur le nom du fichier à créer
2°)lui demander le nombre de fichiers à créer
3°)créer les fichiers dans le dossier de l'exe
4°)donner le même nom à tous les fichier avec un chiffre à la fin (ex:fichier1, fichier2....).
Je l'ai expliqué dans mon premier message.
Ben non. Tu ne peux pas créer un fichier tant que tu ne connais pas son nom...Envoyé par gaara
1 demander à l'utilisateur le nom de base du fichier à créer
2 lui demander le nombre de fichiers à créer
3 Pour chaque fichier :
3.1 ajouter un numéro au nom de fichier (de 1 au nombre de fichiers)
3.2 créer le fichier dans le dossier de l'exe
3.3 fermer le fichier
Maintenant, le pseudo-code.
Dans le dossier de l'exe ou dans le dossier courant ?
Sachant qu'il n'existe aucun moyen standard sûr (ni aucun moyen POSIX sûr) de récupérer le dossier de l'EXE...
Emmanuel Delahaye m'a donné un code source qui marche parfaitement bienmaintenan je vais l'étudier de près et revenir poser des questions à ce sujet merci encore pour le code je l'ai regarder vite fait, mais j'aurais été incapable de mle coder moi même
Là je pars en vacance et je reviens dans 10 jours donc pendant ce temps il est logique que je ne réponde pas =)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager