bonjour, je voudrai créer un fichier texte en le nommant par la date du jour avec fopen:
ça marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 _strdate(bli); printf("%s\n",bli); bla=fopen (bli,"a+");![]()
bonjour, je voudrai créer un fichier texte en le nommant par la date du jour avec fopen:
ça marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 _strdate(bli); printf("%s\n",bli); bla=fopen (bli,"a+");![]()
Normal ...![]()
Tu devrais savoir que printf affiche la chaîne sur le flux standard de sortie donc stdout. Toi du dois créer une chaîne donc c'est sprintf qu'il te faut ! Attention, bli doit être un espace valide donc soit un tableau de char statique ou bien un espace alloué dynamiquement !
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
merci mais ça marche pas, mon programme se compile mais ça plante voila ma fonction:
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 int main () { char bli [9]; char blo []="xxxxxxxxx.txt"; char cours [9]; FILE *entree, *sortie; _strdate(bli); sprintf( blo, "%s.txt", bli ); sortie=fopen (blo,"a+"); fclose (sortie); return 0; }
Et ca te sert à quoi de déclarer ton tableau blo de cette manière ?
Pourquoi ne pas faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part char blo []="xxxxxxxxx.txt";
Tout simplement !
Code : Sélectionner tout - Visualiser dans une fenêtre à part char blo [20];
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Merci de poster du code compilable....Envoyé par hitcher48
_strdate() n'est pas standard. Si il y a des '/' dans la date, ça pas le faire...
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 Project : Forums Compiler : GNU GCC Compiler (called directly) Directory : C:\dev\forums\ -------------------------------------------------------------------------------- Switching to target: default Compiling: main.c main.c:2: warning: function declaration isn't a prototype main.c: In function `main': main.c:6: error: `FILE' undeclared (first use in this function) main.c:6: error: (Each undeclared identifier is reported only once main.c:6: error: for each function it appears in.) main.c:6: error: `entree' undeclared (first use in this function) main.c:6: error: `sortie' undeclared (first use in this function) main.c:6: warning: left-hand operand of comma expression has no effect main.c:7: warning: implicit declaration of function `_strdate' main.c:8: warning: implicit declaration of function `sprintf' main.c:9: warning: implicit declaration of function `fopen' main.c:10: warning: implicit declaration of function `fclose' main.c:5: warning: unused variable `cours' main.c:6: warning: statement with no effect Process terminated with status 1 (0 minutes, 1 seconds) 5 errors, 8 warnings
Ceci fonctionne :
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 #include <stdio.h> #include <string.h> #include <stdlib.h> void strdate (char *s) { strcpy (s, "29-04-2007"); } int main (void) { char bli[9]; char blo[] = "xxxxxxxxx.txt"; FILE *sortie; strdate (bli); sprintf (blo, "%s.txt", bli); sortie = fopen (blo, "a"); if (sortie != NULL) { fclose (sortie); system ("dir *.txt"); } return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Le volume dans le lecteur C s'appelle BOOT Le numéro de série du volume est 4C05-16D3 Répertoire de C:\dev\forums 29/04/2007 12:59 0 29-04-2007.txt 23/04/2007 18:00 310 491 reel.txt 25/04/2007 09:36 715 test.txt 3 fichier(s) 311 206 octets 0 Rép(s) 2 838 040 576 octets libres Press ENTER to continue.
code compilable qui plante
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 #include <stdio.h> #include <iostream> using namespace std; int main () { char bli [9]; char blo []="xxxxxxxxxx.txt"; char cours [9]; FILE *sortie; _strdate(bli); sprintf( blo, "%s.txt", bli ); sortie=fopen (blo,"w"); fclose (sortie); return 0; }
Pas du C (et du mauvais C++). Relis ma réponse précédente, je l'ai complétée.Envoyé par hitcher48
si j'écris une fonction qui supprime les '\' ça marchera peut être alors?
Il y a des '\' dans ton format de date ? Curieux, j'aurais dit '/'... Il suffit de l'afficher...Envoyé par hitcher48
Tu peux les remplacer par des '-' ou des '_' ou créer directement ta fonction strdate() avec
time()
struct tm
localtime()
strftime()
ceci peut aider :
http://emmanuel-delahaye.developpez....s.htm#difftime
Partager