Probleme langage c, création de fichier

Résolu
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je laisse un post sur ce site car je commence a apprendre le langage C mais je dois faire un programme permettant de créer un fichier dans un programme écrit en C. mais j'ai quelques soucis :s
Si quelqu'un avait la solution et qu'il pouvait m'aider ^^
Voici ce que j'ai écrit :s :
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
unsigned long fichier;
sprintf(test.txt)
   FILE* fichier = NULL;
 
    fichier = fopen("test.txt", "w");
 
    if (fichier != NULL)
    {
        fputs("salut \n ça va ?", fichier);
        fclose(fichier);
    }
 
    return 0;
  
  
  FILE* fichier = NULL;

    fichier = fopen("test.txt", "r+");

    if (fichier != NULL)
    {
    
    }
    else
    {
        
        printf("Impossible d'ouvrir le fichier test.txt");
    }
  system("PAUSE");      
  return 0;
}



Voilà, merci de votre aide.
A voir également:

12 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 ;)
0
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
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
0
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
et tu ne dois pas metrtre deux "fichier" identiques, l'autre appelles le fichier1 par ex.

et ne mets pas deux return 0 !
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Apres la modification, je ne peux toujours pas compilé car on m'indique une erreur dans le main. Et ces erreures :

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
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 :
#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;
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
ah oui, le fprintf, tu doit mettre

fprintf ("fichier, "salut %i", calcul); par ex
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Par contre je dois déclarer quoi par calcul, je comprend pas trop là
0
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
c'etait uh exemple, si jamais tu veux mettre une variable !! dsl
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci fiddy, ta solution fonctionne tres bien par contre lorsque je l'éxécute, il ne ouvre pas mon fichier. Comment faire ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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) :
char buffer[100];
fgets(buffer,sizeof buffer,fichier);
puts(buffer);
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
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.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Et lancer un bat depuis le programme C, c'est possible ça. Ou il faut réalisez un programme distinct en .bat ???
0
reggaetonero Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai trouvé la solution merci beaucoup pour votre aide.
0
HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
ok salut !
0