creer un fichier .txt langage C

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

bonsoir a tous je veux creer un fichier txt ou je peux stocker la conjugaison des verbe iiregulier bon j ai essayer voila mon code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string.h> 
#include <stdio.h>
main(){
char verbe[10],temps[7],conj[100];
int n,i;    

FILE *conjugaison;
printf("combien de verbe voulez vous saisir");
scanf("%d",&n);
for (i=0;i<n;i++)
{
    printf("saisie le verbe");
    scanf("%s",&verbe);
    printf("temps");
    scanf("%s",&temps);
    printf("sa conjugaison");
    scanf("%s",conj);
}

conjugaison = fopen ("Documents\\conjugaison.txt","a");
fprintf (conjugaison,"%s %s %s ",verbe,temps,conj);
fcolse(conjugaison);
}

Édité par nisrinehammout

+0 -0

Cette réponse a aidé l'auteur du sujet

Sinon, tu ne dois pas mettre d'esperluette (&) quand tu fais un scanf sur une chaîne de caractères : tu dois envoyer l'adresse à partir de laquelle il faut écrire, et en passant un tableau tu passes déjà une adresse. De plus, je rappelle que scanf ne récupère que jusqu'au premier caractère blanc (espace, retour à la ligne, tab, etc.) et que si tu veux pouvoir gérer cela, il te faudrait fgets (et pas gets !)

Édité par Bermudes

Le hasard n'est que le nom donné à notre ignorance et n'existerait pas pour un être ominscient., Émile Borel

+0 -0

Oui avec fprintf à la ligne 21. Moi je te parle de ta récupération sur l'entrée standard avec scanf.

Le hasard n'est que le nom donné à notre ignorance et n'existerait pas pour un être ominscient., Émile Borel

+0 -0

Cette réponse a aidé l'auteur du sujet

Je te laisse chercher dans un premier temps. Pour t'aider voici la référence de la fonction et un sujet qui pourrait t'aider.

Garde en tête que la fonction fgets sert à lire sur des fichiers, mais que ton OS gère les entrées sortes avec l'écran (entre autres) comme une écriture/lecture dans un fichier. En lecture, le nom du fichier est stdin et en écriture, c'est stdout.

Le hasard n'est que le nom donné à notre ignorance et n'existerait pas pour un être ominscient., Émile Borel

+0 -0
Auteur du sujet

voila mon code mais quand je compile le exe cesse de fonctionner

 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 <string.h> 
#include <stdio.h>
main(){
char verbe[10],temps[7],conj[100];
int n,i;    

FILE *conjugaison;
printf("combien de verbe voulez vous saisir");
scanf("%d",&n);

if ( conjugaison == NULL) perror ("Error opening file");

 else {
for (i=0;i<n;i++)

{
     if ( fgets (verbe , 10 ,conjugaison) != NULL )
       puts (verbe);
    if ( fgets (temps , 7 ,conjugaison) != NULL )
       puts (temps);
    if ( fgets (conj , 100 ,conjugaison) != NULL )
       puts (conj);   
}
}

conjugaison = fopen ("Documents/conjugaison.txt","a");
fprintf (conjugaison,"%s %s %s ",verbe,temps,conj);
fclose(conjugaison);
}

Édité par nisrinehammout

+0 -0

if ( conjugaison == NULL) perror ("Error opening file"); il y a un sacré problème dans cette ligne : tu testes la valeur de ton pointeur conjugaison alors que tu n'as pas encore ouvert ton fichier. Pire même, tu testes une variable locale sans même avoir assigné quoi que ce soit, même une valeur initiale (genre NULL).

Sinon, essaye d'indenter ton code, tu verras, ce sera beaucoup plus simple à modifier après.

Le hasard n'est que le nom donné à notre ignorance et n'existerait pas pour un être ominscient., Émile Borel

+0 -0

comment ca indenter

nisrinehammout

Pour une meilleure compréhension/lecture du code, essaye d'ajouter des espaces/tabulations au bon endroit. Par exemple, un code non indenté :

1
2
3
4
5
6
7
sub MAIN(Int $x) {
if $x > 0 { 
return 1;
} else {
return 0;
}
}

Le même code, mais indenté cette fois :

1
2
3
4
5
6
7
sub MAIN(Int $x) {
  if $x > 0 { 
    return 1;
  } else {
    return 0;
  }
}

Tu m’accorderas que le deuxième code est beaucoup plus lisible que le premier. ;)

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte