Probleme langage c, création de fichier
Résolu/Fermé
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
-
26 déc. 2008 à 15:44
HACKER 712 Messages postés 1282 Date d'inscription lundi 15 décembre 2008 Statut Contributeur Dernière intervention 10 décembre 2009 - 27 déc. 2008 à 17:59
HACKER 712 Messages postés 1282 Date d'inscription lundi 15 décembre 2008 Statut Contributeur Dernière intervention 10 décembre 2009 - 27 déc. 2008 à 17:59
A voir également:
- Probleme langage c, création de fichier
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier iso - Guide
12 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
26 déc. 2008 à 15:50
26 déc. 2008 à 15:50
Salut,
Enlève le unsigned long fichier, le sprintf, le premier return 0; et n'oublie pas de fermer le fichier tout à la fin. De plus, enlève la deuxième déclaration de fichier.
Ca devrait mieux marcher ;)
Enlève le unsigned long fichier, le sprintf, le premier return 0; et n'oublie pas de fermer le fichier tout à la fin. De plus, enlève la deuxième déclaration de fichier.
Ca devrait mieux marcher ;)
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
26 déc. 2008 à 15:51
26 déc. 2008 à 15:51
salut !
quand tu mets des nombres a variables dans un fichier, il faut utiliser le fprintf au lieu de fputs car le fputs ne prends pas en compte les variables, ensuite il n'y a pas besoin de mettre le unsigned char fichier, il se crée tout seul avec le pointeur FILE sur fichier
quand tu mets des nombres a variables dans un fichier, il faut utiliser le fprintf au lieu de fputs car le fputs ne prends pas en compte les variables, ensuite il n'y a pas besoin de mettre le unsigned char fichier, il se crée tout seul avec le pointeur FILE sur fichier
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
26 déc. 2008 à 15:52
26 déc. 2008 à 15:52
et tu ne dois pas metrtre deux "fichier" identiques, l'autre appelles le fichier1 par ex.
et ne mets pas deux return 0 !
et ne mets pas deux return 0 !
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 15:59
26 déc. 2008 à 15:59
Apres la modification, je ne peux toujours pas compilé car on m'indique une erreur dans le main. Et ces erreures :
Et voiçi mon nouveau code :
PS: Je suis pas très doué, je prefere le PHP :p
13 [Warning] passing arg 1 of `fprintf' from incompatible pointer type
13 [Warning] passing arg 2 of `fprintf' from incompatible pointer type
Et voiçi mon nouveau code :
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE* fichier = NULL; fichier = fopen("test.txt", "w"); if (fichier != NULL) { fprintf("salut \n ça va ?", fichier); fclose(fichier); } FILE* fichier2 = NULL; fichier2 = fopen("test.txt", "r+"); if (fichier2 != NULL) { } else { printf("Impossible d'ouvrir le fichier test.txt"); } system("PAUSE"); return 0; }
PS: Je suis pas très doué, je prefere le PHP :p
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
26 déc. 2008 à 16:03
26 déc. 2008 à 16:03
Salut,
Pas besoin de fprintf dans ton cas. fputs suffira amplement. fprintf c'est si tu veux mettre des variables etc.
Et pas besoin de recréer une variable fichier2 comme il t'a été dit. Autant réutiliser l'autre.
Teste plutôt :
Pas besoin de fprintf dans ton cas. fputs suffira amplement. fprintf c'est si tu veux mettre des variables etc.
Et pas besoin de recréer une variable fichier2 comme il t'a été dit. Autant réutiliser l'autre.
Teste plutôt :
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE* fichier = NULL; fichier = fopen("test.txt", "w"); if (fichier != NULL) { fputs("salut \n ça va ?", fichier); fclose(fichier); } fichier = fopen("test.txt", "r"); if (fichier != NULL) { //ici tu peux lire ton fichier fclose(fichier); } else { printf("Impossible d'ouvrir le fichier test.txt"); } system("PAUSE"); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
26 déc. 2008 à 16:03
26 déc. 2008 à 16:03
ah oui, le fprintf, tu doit mettre
fprintf ("fichier, "salut %i", calcul); par ex
fprintf ("fichier, "salut %i", calcul); par ex
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 16:06
26 déc. 2008 à 16:06
Par contre je dois déclarer quoi par calcul, je comprend pas trop là
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
26 déc. 2008 à 16:07
26 déc. 2008 à 16:07
c'etait uh exemple, si jamais tu veux mettre une variable !! dsl
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 16:08
26 déc. 2008 à 16:08
Merci fiddy, ta solution fonctionne tres bien par contre lorsque je l'éxécute, il ne ouvre pas mon fichier. Comment faire ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
26 déc. 2008 à 16:13
26 déc. 2008 à 16:13
Si, ça ouvre bien ton fichier en mémoire. Après à toi d'aller chercher les informations dedans avec fgets par exemple.
Mets par exemple là ou je t'ai mis (ici tu peux lire ton fichier) :
Mets par exemple là ou je t'ai mis (ici tu peux lire ton fichier) :
char buffer[100]; fgets(buffer,sizeof buffer,fichier); puts(buffer);
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 16:16
26 déc. 2008 à 16:16
En faite ce que je voudrais c'est que le fichier s'ouvre avec un éditeur comme le bloc note ou notepad++ et non pas dans la console.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
26 déc. 2008 à 16:20
26 déc. 2008 à 16:20
Dans ce cas, c'est plutôt du batch ou du shell qu'il faut faire.
En C, tu as des solutions mais qui ne sauront pas portable. Sur windows, tu peux par exemple faire :
system("notepad fichier.txt"); ou tu peux aussi utiliser la famille des exec (execve, etc).
Cdlt
En C, tu as des solutions mais qui ne sauront pas portable. Sur windows, tu peux par exemple faire :
system("notepad fichier.txt"); ou tu peux aussi utiliser la famille des exec (execve, etc).
Cdlt
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 16:25
26 déc. 2008 à 16:25
Et lancer un bat depuis le programme C, c'est possible ça. Ou il faut réalisez un programme distinct en .bat ???
reggaetonero
Messages postés
22
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
1
26 déc. 2008 à 16:37
26 déc. 2008 à 16:37
J'ai trouvé la solution merci beaucoup pour votre aide.
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
27 déc. 2008 à 17:59
27 déc. 2008 à 17:59
ok salut !