Bonjour,
Je débute en C et je suis confrontée à un problème lors de l'écriture dans un fichier texte grâce à mon programme en C.
J'ai constaté que le texte écrit grâce à la fonction fprintf est réellement écrit dans le fichier non pas lors de l'appel de cette méthode, mais à la fin de l'exécution du main.
Je ne comprends pas à quoi c'est dû et cela me pose problème car je souhaite d'abord écrire dans mon fichier, puis récupérer les données écrites afin de les utiliser dans une autre fonction, mais je ne peux pas puisque lorsque j'essaye de lire mon fichier .txt il est encore vide (fin du main non atteinte).
Voici mon code (je travaille sous linux d'où le chemin d'accès pour le fichier .txt à créer).
Merci d'avance pour votre aide!
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
30
31
32
33
34
35
36 #include<stdlib.h> #include<stdio.h> // Ecriture dans le fichier write(char* pChemin,char* pText){ FILE *pFichier=fopen(pChemin,"w"); if(pFichier){ fprintf(pFichier,"%s \n",pText); } else{ printf("méthode write : problème à l'ouverture du fichier. Vérifiez que le chemin d'accès indiqué l33 est correct \n"); } close(pFichier); } // Main int main (int argc, char *argv[]) { // Texte à écrire char* pText="blablabla"; // Chemin du fichier à créer dans lequel on souhaite écrire le texte char* pChemin="/home/nina/Bureau/fichier.txt"; // Appel à la fonction d'écriture write(pChemin,pText); // Vérification printf("Vérifier que le fichier a bien été créé mais qu'il est vide, puis taper sur n'importe quelle touche puis entrée pour continuer \n"); int a; scanf("%u",&a); printf("Fin du programme. Rouvrez le fichier : il contient la chaine de caracètres voulue. \n"); }
Partager