creer un fichier .txt langage C

a marqué ce sujet comme résolu.

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);
}
+0 -0

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 !)

+0 -0

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.

+0 -0

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);
}
+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.

+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. ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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