Aller au menu - Aller au contenu

Lire et écrire dans des fichiers

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3  4  5  6  7  8  Suivante
Pseudo Commentaire
Page Précédente  1  2  3  4  5  6  7  8  Suivante
Hors ligne XDki113r # Posté le 22/08/2011 à 21:25:05
Québécois !
Avatar

Ville : Drummondville
Pays : Canada

Super tuto :)

Lien du Topic de mon mod Minecraft : Redstone Kit
 
Hors ligne ReloadeDragon # Posté le 24/08/2011 à 14:02:33
Avatar

Bonjour, très bon tuto, Mateo, mais arrivé ici maintenant j'ai un problème.

Je suis sur un mac, et il est impossible, quoi que je fasse, d'ouvrir mon fichier test.txt, j'ai tout essayé, copier, coller test.txt partout depuis le fichier parent de l'exécutable, essayé Code::Blocks et X-Code, mais rien à faire, il m'indique à tout les coups "Impossible d'ouvrir le fichier test.txt". Pourtant j'ai relu le début plusieurs fois, et il ne m'a pas semblé avoir fais une erreur, regardez mon code, et j'espère que quelqu'un va pouvoir m'aider, parce-que c'est embêtant de devoir resté bloqué là :(.

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdlib.h>
#include <stdio.h>
FILE* fopen(const char* nomDuFichier, const char* modeOuverture);

int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    
    fichier = fopen("test.txt", "r+");
    
    if (fichier != NULL)
    {
        // On peut lire et écrire dans le fichier
    }
    else
    {
        // On affiche un message d'erreur si on veut
        printf("Impossible d'ouvrir le fichier test.txt");
    }
    
    return 0;
}
Hors ligne megacier # Posté le 25/08/2011 à 08:30:14
404 Non Trouvée
Avatar

Avis : Très bon

Il faut que ton fichier soit a coté de ton projet:relit les lignes ou il parle de l'emplacement du txt (avec un imprim' écran).

Image utilisateur
Image utilisateur


JE VAIS TOUS VOUS CROQUER



C [||||||||||] ---> théorie finie_______________________C++ [||||||||||]---> fin de la première partie
 
Hors ligne leoji77 # Posté le 29/08/2011 à 11:15:21

Bonjour,
Je programme sur MAC avec le superbe logiciel d'apple, Xcode.
Voila j'ai pas trop eu de mal a créer le fichier etc mais j'ai un probleme et je ne sais pas si c'est a cause du systeme ou du logiciel.
Je veux ecrire dans mon fichier avec fprintf avec le mode d'ouverture "w", mais je probleme c'est que soit le fichier n'est pas créer mais j'ai quand meme la condition qui est vrai, soit le fichier est vide meme avec fprintf.
j'aimerai savoir pourquoi j'ai cette erreur.
merci :)
Hors ligne Geekizou # Posté le 13/09/2011 à 17:24:44
Tu es le css de mon xhtml
Avatar

Salut
Alors moi mon prob c'est que quand j'écris en utilisant un fprinf dans mon fichier ouvert en "r+" et que un peu plus loin dans mon code j'essaye d'afficher le contenu, et ben surprise ça affiche rien, juste un grand "trou noir" vide dans la console, quand je regarde mon fichier.txt (en notepad++) je trouve plein de carrés noirs où y'a marqué NULL dedans
Voilà mon code:
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fichier=NULL;
fichier = fopen("test.txt", "r+");
int caractere = 0;
if (fichier != NULL)
{
 fprintf(fichier, "Hello world!");
 caractere = fgetc(fichier);
    while(caractere != EOF)
    {
        printf("%c", caractere);
        caractere = fgetc(fichier);
    }
    fclose(fichier);
}
return 0;
}

J'♥ =(633k)?1:0;
 
Hors ligne w0onka # Posté le 01/10/2011 à 23:46:58
Avatar

Bonjour les zéros!

Je suis en train de préparer un programme de dictionnaire pour l'éventuel pendu.
Après une prévention de bugs très "tight" sur chaque fonctionnalité, il m'en reste toujours une à programmer:

Celle qui premet de retirer un mot du dictionnaire.
Cette dernière sera probablement très simple à réaliser comparé à mes autre fonctionnalités, mais
elle fait appel à une connaissance que je ne possède pas­.

En effet, comment supprimer de l'espace dans un fichier? Pas le remplacer par des espaces, mais bien
supprimer, par exemple réduire la taille du fichier d'une ligne?

Merci pour vos réponses...

(A)
 
Hors ligne mybaluch # Posté le 07/10/2011 à 20:01:30

Avis : Très bon

Le sujet a peut être déjà été posté mais j'ai deux problèmes :

le premier c'est que je n'ai pas bien compris quelle était le format du fichier à mettre et où mettre le fichier car
- J'ai mis mon fichier .pages (je suis sur mac) dans le mm dossier mais rien ne fait.

Le deuxième problème c'est que je ne sais pas si le fichier ouvert "s'ouvre" cad apparait quelque part ou pas.

Sinon j'ai le mm programme que m@teo21 et quand je le lance il passe par if (comme ci tout allait bien) et il renvoie 0 comme d'habitude mais rien n'a changé dans mon fichier ...

que faire??
merci pour toutes les réponses !

(je suis sur Xcode)
Hors ligne vorpal # Posté le 27/10/2011 à 00:21:41

Moi aussi j'ai eu des problèmes pour faire ouvrir le fichier test
bien que je les renommer test.txt sa ne marchait pas.

J'ai du ouvrir le fichier test.
Cliquer sur fichier.
Cliquer sur enregistrer sous...
Et de voir si l'extension est bien sur (*.txt).
Après cliquer sur Enregistrer.
Le fichier existe déjà. Voulez-vous le remplacer? faite oui.

J’essaie mon programme et miracle sa marche.

Au fait mon fichier porte juste le nom de test ont voie pas le .txt
et ma ligne de code est
fichier = fopen ("test.txt","r+");
Hors ligne vorpal # Posté le 27/10/2011 à 00:47:27

L’amour c’est comme la grippe, ça s’attrape dans la rue et ça se soigne au lit !
Hors ligne kobikobo # Posté le 06/11/2011 à 17:52:20
Avatar

Avis : Très bon

est ce normal que sa ne marche pas int main
(int argc, char *argv[])
{
FILE* fichier = NULL;

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

if (fichier != NULL)
{
// On lit et on écrit dans le fichier

// ...

fclose(fichier); // On ferme le fichier qui a été ouvert
}

return 0;
}
FILE* fichier = NULL; ets la cause du probleme aidez moi please
Hors ligne BboyAnouar # Posté le 10/11/2011 à 13:51:06
Avatar

Avis : Décevant

salut, pareil que toi kobikobo ça ne fonctionne pas
Hors ligne BboyAnouar # Posté le 10/11/2011 à 14:15:09
Avatar

Avis : Décevant

Moi mon text.txt si je le créé pour que ça marche il doit être enregistré là où il y a le projet, pas où il y a l'exe c'est bizarre
Hors ligne mirador2022 # Posté le 30/11/2011 à 13:08:22
j'm aprendre
Avatar

Bonjour tout le monde,
j'adore ton tuto M@teo c'est le meilleur que j'ai trouver sur le net et dans les livres.
Hors ligne Caféïne # Posté le 18/12/2011 à 01:02:24
Avatar

Salut tout le monde !
Super tuto, comme tous les autres, mais cependant, j'ai un problème assez tenace et ennuyeux :diable: ...
Voila : Je n’arrive pas du tout a ouvrir le fichier test.txt, j'ai tout essayé, enlevé et remettre l'extension .txt, test.txt se trouve bien dans le même dossier que l’exécutable et le projet...Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
#include <stdio.h>

FILE* fopen(const char* nomDuFichier, const char* modeOuverture);

int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    
    fichier = fopen("test.txt", "r+");
    
    if (fichier != NULL)
    {
        printf("fichier test.txt ouvert");
    }
    else
        printf("Impossible d'ouvrir le fichier test.txt");
    
    return 0;
}

:colere2: Et impossible d'avoir juste un : "fichier test.txt ouvert" !!

I love videogames...
 
Hors ligne PastèqueAztek # Posté le 18/12/2011 à 16:26:24

Salut Café,

Est-ce que tu utilises Win 7 ? J'avais le même problème parce que par défaut, les extensions étaient cachées. Du coup si je créais un fichier "text.txt", il s'appelait en fait "text.txt.txt".

J'ai changé les paramètres du navigateur pour qu'il affiche les extensions et ça a réglé le problème. (dans le navigateur Windows, Organiser/Option des dossiers.../Afficher/masquer les extensions connues)
J'espère avoir aidé. Bye !
Hors ligne Duc Au But # Posté le 08/01/2012 à 12:05:49
Hey! It compiles! Ship it!
Avatar

Études : INSA Toulouse

Petit commentaire... sous Mac OS X Lion et avec Code Blocks 10.05, pour des raisons obscures, j'ai dû mettre mon fichier.txt dans mon espace personnel (/Users/monnomdutilisateur/ en chemin absolu). Le dossier contenant le fichier .cpb et tout le reste est sur mon bureau. Je n'y comprends rien.

Some things Man was never meant to know. For everything else, there’s Google.
 
Hors ligne shan9588 # Posté le 22/01/2012 à 19:53:15

Avis : Très bon

J'adore ce site :)
Hors ligne bradford # Posté le 04/02/2012 à 21:13:39

Bonjour,
merci pour ce superbe tuto que je suis en parallèle de la lecture du livre pour profiter des commentaires qui aident à progresser.
je suis sous xcode (donc mac) et je rencontre le problème cité plus haut, à savoir l'impossibilité d'ouvrir le fichier test.txt malgré toutes les manipulations possibles.
Si une personne à trouvé la solution, ce serait génial.
ps : une personne plus haut a demandé s'il était possible de créer le fichier par le biais d'une fonction, je ne sais pas si cela est faisable, ce serait une solution à mon problème.
Hors ligne RealDesign # Posté le 11/02/2012 à 10:22:26

Avis : Très bon

Quand meme, désolé Mateo mais la partie de pointeur sur fichier n'est pas super bien expliquée, ou trop baclé ! Parce que j'ai lu et relu tous les anciens chapitres, et je n'arrive toujours pas a comprendre ce : FILE* fichier = NULL, ou ce pointeur sur test :s Quelqu'un pourrait m'expliquer ?
Hors ligne RealDesign # Posté le 11/02/2012 à 16:31:34

Avis : Très bon

J'ai finalement bien relu et je me dois de retirer ce que j'ai dis, j'ai PLUS QUE BIEN COMPRIS CE NOUVEAU MAGNIFIQUE TUTO ! Merci Mateo !!!! :D
Hors ligne Ghost_anon # Posté le 20/02/2012 à 13:35:36
Avatar

Avis : Très bon

MERCI MAT

t'es génial :p

avis : 19 /20 , et ouais, 20 tu l'auras quand on sera vraiment à la fin :D

++
Hors ligne LivingStoneHgS # Posté le 28/02/2012 à 16:03:28

Help meee ! :(
Sous Xcode, impossible d'ouvrir quelconque fichier dans la mémoire.. et d'y écrire quoi que ce soit. :( C''est embettant ! Lorsque je teste l'ouverture du fichier avec if (file.rtf == NULL), eh ben... Cette condition est toujours vraie ! :p Mais du coup je ne peux rien faire avec les fichiers :( ...
Quelqu'un peut-il m'aider s'il vous plait ? Merci beaucoup ! :)
Hors ligne acccromaths # Posté le 05/03/2012 à 18:08:54

problème résolu.
Hors ligne Wk-gentle # Posté le 06/03/2012 à 17:03:48

("Problème résolu :3")
Hors ligne acccromaths # Posté le 06/03/2012 à 18:36:27

Pour Café, je commencerai par enlever sa ligne 4 :
Code : C
1
FILE* fopen(const char* nomDuFichier, const char* modeOuverture);

Ceci est en fait déjà dans la bibliothèque stdio.h .
Pas sûr que le problème vienne de là ( mais à tester au cas où ). ;)
Hors ligne acccromaths # Posté le 06/03/2012 à 20:06:18

Livingstone, problème pour ouvrir le fichier:
Citation
Lorsque je teste l'ouverture du fichier avec if (file.rtf == NULL), eh ben... Cette condition est toujours vraie ! :p Mais du coup je ne peux rien faire avec les fichiers :( ...
Quelqu'un peut-il m'aider s'il vous plait ? Merci beaucoup ! :)

Beaucoup semble avoir le même problème pour retrouver les fichiers et les ouvrir. En effet, je me suis rendu compte que le classement des fichiers de Mateo et le mien sont différents. Pour moi, pas de problème pour ouvrir : j'ai en fait 2 text.txt. Un qui se trouve avec mon .exe et l'autre avec mon projet dans 2 dossiers différents(le dossier de mon .exe se trouve dans le dossier de mon projet).
Il faut s'adapter!!! :p
Cependant, il existe une solution très simple :
Citation
"r" : lecture seule. Vous pourrez lire le contenu du fichier, mais pas écrire dedans. Le fichier doit avoir été créé au préalable.
"w" : écriture seule. Vous pourrez écrire dans le fichier, mais pas lire son contenu. Si le fichier n'existe pas, il sera créé.
"a" : mode d'ajout. Vous écrirez dans le fichier, en partant de la fin du fichier. Vous rajouterez donc du texte à la fin du fichier. Si le fichier n'existe pas, il sera créé.
"r+" : lecture et écriture. Vous pourrez lire et écrire dans le fichier. Le fichier doit avoir été créé au préalable.
"w+" : lecture et écriture, avec suppression du contenu au préalable. Le fichier est donc d'abord vidé de son contenu, et vous écrivez et lisez ensuite dedans. Si le fichier n'existe pas, il sera créé.
"a+" : ajout en lecture / écriture à la fin. Vous écrivez et lisez du texte à partir de la fin du fichier. Si le fichier n'existe pas, il sera créé.

Supprimez vos test.txt et lancez le mode "w". Il sera automatiquement créé et vous verrez alors où il se retrouve!!! ;)
Hors ligne naruto-san 77 # Posté le 07/03/2012 à 16:04:36

Bonjour,

J'espère que j'aurais de l'aide ici...
Donc voilà je suis les tuto de C et je suis bloqué pur lire dans un fichier. Peut être que ça à l'air simple pour vous mais j'aimerais lire le fichier et donc l'afficher dans la console mais j'aimerais vérifier que le premier caractère de chaque ligne (car il y a plusieurs lignes dans mon fichier) soit un S.

Si il ne trouve pas de S au début de la ligne, un compteur sera incrémenté de 1 (car j'aimerais compter le nombre de S qu'il manque en tout dans le fichier).

Je vous remercie pour votre réponse !
Hors ligne GamerGeek # Posté le 17/03/2012 à 20:19:49

Avis : Très bon

bonjour :)

j'ai un problème au début du chapitre, il faut créer un fichier test.txt dans le meme fichier que le .exe ou un truc du genre mais le problème c'est que je ne sais pas comment faire :(
je ne sais pas si il faut déjà créer un dossier "test" sur mon bureau, s'il faut enregistrer dedans ou faire je ne sais quoi encore...
pourriez vous m'expliquer la démarche à suivre?

merci
Hors ligne cocoploudaniel # Posté le 18/03/2012 à 16:41:13
La propriété, c'est le vol !
Avatar

Bonjour, j'ai un petit problème avec fgets, peut-être quelqu'un pourrait-il m'aider. Voilà le code que j'écris :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000

int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    char chaine[TAILLE_MAX] = "";
    int age = 15;
    fichier = fopen("test.txt", "r+");
    if (fichier != NULL)
    {
        fprintf(fichier, "Vous avez %d ans.", age);
        fgets(chaine, TAILLE_MAX, fichier);
        printf("%s", chaine);
        fclose(fichier);
    }
    return 0;
}


Et voilà ce que me renvoie la console Windows :

♦♥
Process returned 0 (0x0) execution time : 0.047 s
Press any key to continue.

Le fichier test.txt existe bien, il est dans le bon dossier, et si j'enlève le fgets, le printf marche tout à fait normalement.

Merci d'avance.

«Si la population comprenait le système bancaire, je crois qu'il y aurait une révolution avant demain matin.»
Henry Ford.
 
Hors ligne cocoploudaniel # Posté le 19/03/2012 à 11:50:40
La propriété, c'est le vol !
Avatar

C'est bon, j'ai compris mon erreur, j'avais oublié de remettre le curseur virtuel au début du fichier. Il fallait écrire :
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000

int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    char chaine[TAILLE_MAX] = "";
    int age = 15;
    fichier = fopen("test.txt", "r+");
    if (fichier != NULL)
    {
        fprintf(fichier, "Vous avez %d ans.", age);
        rewind(fichier);
        fgets(chaine, TAILLE_MAX, fichier);
        printf("%s", chaine);
        fclose(fichier);
    }
    return 0;
}

«Si la population comprenait le système bancaire, je crois qu'il y aurait une révolution avant demain matin.»
Henry Ford.
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx