C++ #13 - fichiers

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ย. 2024

ความคิดเห็น • 62

  • @monsieurvervisch
    @monsieurvervisch ปีที่แล้ว +2

    Bonjour Jason et merci. J'ai trouvé dans la documentation (et uniquement dans celle ci) pour ceux comme moi qui ont essayé avec ofstream d'ajouter le texte en fin de fichier ceci : std::fstream f("animals.txt",std::ios::in | std::ios::app);

  • @Kihilbill
    @Kihilbill ปีที่แล้ว +3

    Je suis en train de tomber amoureux de C++ ! J'ai fait du python, du java, du typescript et du php mais il y a quelque chose avec le C++ que je kiff réellement.
    J'ai hâte d'en savoir un peu plus et de commencer à utiliser des bibliothèques.

    • @formation-video
      @formation-video  ปีที่แล้ว +1

      C'est souvent comme cela que ça se passe, un langage peut se démarquer des autres, parfois pour des préférences aussi simples que la manière d'écrire le code 👍

  • @zmf1425
    @zmf1425 2 ปีที่แล้ว +3

    Bonjour,
    Vos vidéo sont super : pas d hyper cut a tout va pas de blabla, juste le c++ et le code. Parfait. Merci

    • @formation-video
      @formation-video  2 ปีที่แล้ว

      Bonjour, oui, c'est un choix que de ne pas couper de passages sur les vidéos, pour faire naturel, comme ça le serait dans un cours classique, ou une conférence 😉

  • @S.Mino_
    @S.Mino_ 2 ปีที่แล้ว +1

    Merci pour la vidéo, Je l'attendais.

  • @Mamoune
    @Mamoune ปีที่แล้ว

    Vous m'expliquer tellement de choses que j'ignorez

    • @formation-video
      @formation-video  ปีที่แล้ว

      Bon apprentissage alors 😉

    • @Mamoune
      @Mamoune ปีที่แล้ว

      @@formation-video Merci maintenant je suis un peu plus motivés.
      Dis: penseriez vous un jour nous parlez des bibliotheques ou librairies externes developpées en C++ par les autres qui offre des fonctionnalités et pouvoir les utiliser dans notre code.

    • @formation-video
      @formation-video  ปีที่แล้ว

      Pas vraiment non, les gens n'ont pas besoin de tutos pour cela, mais de la documentation spécifique. Par contre, j'ai prévu d'aborder une bibliothèque comme Qt, dans un cours à part, avec C++ évidemment.

    • @Mamoune
      @Mamoune ปีที่แล้ว

      @@formation-video ah ok ça serai cool d'aborder Qt avec Vous .

  • @dihya2116
    @dihya2116 ปีที่แล้ว

    Merci beaucoup monsieur

  • @guillaumed9685
    @guillaumed9685 2 ปีที่แล้ว +2

    Merci :)

  • @Aznav-la-Betrave
    @Aznav-la-Betrave 10 หลายเดือนก่อน

    Salut, encore une fois merci beaucoup pour ces cours très bien construits et très instructifs.
    J'ai une question, j'ai réussi à faire une boucle if avec une condition tant que i < 12 pour lire chaque mot. Mais comment je pourrais faire pour faire une boucle pour lire tout un texte jusqu'à la fin si je n'en connais pas la longueur ou le nombre de mots ?
    Comment mettre la condition de s'arrêter quand on arrive au dernier mot ?
    Merci pour ton aide et bonne continuation! :D

    • @formation-video
      @formation-video  10 หลายเดือนก่อน

      Bonjour, il suffit de parcourir le fichier tant qu'il y a quelque chose à lire (une boucle en faisant des appels à std::getline par exemple).

  • @theotessier5857
    @theotessier5857 ปีที่แล้ว

    Bonjour, Je suis actuelle à 9:15 de vidéo et vous venez de dire quelque chose de très intéressant et cela me fait me poser une question. Vous dites que sans sauvegarder, le programme que nous écrivons se trouve dans la mémoire vive. Alors je me demande si (en imaginant que j'ai une Ram de 4Go) en écrivant un programme ayant une taille supérieure à 4Go mon pc peut rencontrer un problème ? Est-ce que cela peut m'empêcher de sauvegarder mon programme ? Et si j'arrive à sauvegarder ce programme, est-ce que ma Ram perd instantanément les 4Go de programme ?

    • @formation-video
      @formation-video  ปีที่แล้ว

      Alors il faut déjà avoir connaissance du fonctionnement de la mémoire (dite virtuelle dans ce cas précis). Cette vidéo traite du sujet en détails : th-cam.com/video/B1wJJNITvkY/w-d-xo.html
      Et pour répondre à ta question : en cas de manque de mémoire vive, le système utiliserait son système de pagination. Et si vraiment la mémoire totale venait à être saturée, le système ferait le nécessaire pour récupérer des ressources (crash d'un programme en cours, par exemple).

  • @davidlafarce121
    @davidlafarce121 10 หลายเดือนก่อน

    Merci pour la video!Mais je comprends pas pourquoi quand je fait file.is_open() le fichier est toujours vrai et il se ferme pas à la fin du fichier ce qui me donne une boucle infinie ?

    • @formation-video
      @formation-video  10 หลายเดือนก่อน

      Montre ton code

    • @davidlafarce121
      @davidlafarce121 10 หลายเดือนก่อน

      @@formation-video
      int main
      {
      std::ifstream file{"file.txt"};
      for(std::string name;file.is_open();std::getline(file,name))
      {
      std::cout

    • @davidlafarce121
      @davidlafarce121 10 หลายเดือนก่อน

      *Infinie

    • @davidlafarce121
      @davidlafarce121 10 หลายเดือนก่อน

      Et même avec une boucle while même si je fait tout dans la boucle while au lieu d'être dans les parenthèse comme ce que j'ai fait dans la boucle for il y'a toujours une boucle Infinie et ça répète le dernier mot ou ligne du fichier

    • @formation-video
      @formation-video  10 หลายเดือนก่อน

      La fonction is_open() vérifie si le fichier est ouvert, ce qui est toujours le cas car il n'est fermé qu'à la fin de sa portée (dans ta cas, à la fin de la fonction main). C'est effectivement feof(), héritée du C qui vérifie que nous n'avons pas atteint la fin du fichier.
      Mais en C++, c'est encore plus simple : pastebin.com/BTEZqSkL

  • @gillessterling8971
    @gillessterling8971 ปีที่แล้ว

    Bonjour. Je travail en ce moment sur un projet de gestion de bibliothèque en C++. Je désire savoir si on peut supprimer un fichier à l’aide de mot clé en langage C++, par ce qu’apparemment le remove() et le rename de notre bon vieux langage C ne marche pas… merci

  • @SkallNetwork
    @SkallNetwork 2 ปีที่แล้ว

    Bonjour. Est-ce qu'il existe un moyen de lire un fichier jusqu'à un saut de ligne (par exemple, ou un autre charactere) ? En C, je sais qu'on utilise un buffer mais ici non, je voudrais savoir si il y a une méthode qui permet ce genre de manipulation de fichier ?

    • @SkallNetwork
      @SkallNetwork 2 ปีที่แล้ว +1

      Ah bah c'était répondu dans le Bonus, parfait merci pour la vidéo :3

    • @formation-video
      @formation-video  2 ปีที่แล้ว

      Oui, bien vu ! 👍

  • @Kihilbill
    @Kihilbill ปีที่แล้ว

    Existe-t-il d’autres formats reconnus facilement ? Je pense aux fichiers .ini, au format json, csv par exemple

    • @formation-video
      @formation-video  ปีที่แล้ว +1

      Il faut bien distinguer deux codages pour les fichiers :
      - le mode "texte", c'est-à-dire un codage à base de caractères (que sont les fichiers au format TXT, INI, JSON, CSV, CPP, PY, JAVA, PHP, HTML, etc.)
      - le mode "binaire", c'est-à-dire un codage à base d'octets (que sont tous les autres fichiers : exécutables, images, sons, vidéos, ...) - bref, tout ce que tu ne pourrais pas afficher de manière lisible en l'ouvrant dans un éditeur de texte.

    • @Kihilbill
      @Kihilbill ปีที่แล้ว

      @@formation-video Donc si je comprends bien, il faut que j’utilise (ou que je fabrique) une librairie pour pouvoir manipuler confortablement un .ini ou un markdown.
      Ce sont des fichiers textes enrichis et il faut faire comprendre à c++ comment est enrichie l’information contenue dans le fichier.
      Je serais surpris qu’il n’y ait pas de lib à ce sujet.

    • @formation-video
      @formation-video  ปีที่แล้ว +1

      Attention, on parle de bibliothèque, pas de librairie, et ce que tu cherches s'appelle un parseur de fichier. Donc, en faisant des recherches comme "cpp markdown parser" ou "cpp ini parser", tu trouveras 👍

    • @Kihilbill
      @Kihilbill ปีที่แล้ว

      @@formation-video Merci :) C'est exactement ça !
      Ceci dit tu me surprends pour la différence bibliothèque & librairie, Je vais être vigilant !
      S'il y a confusion c'est que je me suis sans doute fait avoir avec l'anglais Library !
      Encore merci pour "Parser" 👍
      Je profite que tu lises les commentaires pour te dire que j'ai terminé mon programme d'apprenti sorcier. Le principe est simple :
      $ isPrime.exe 647
      retournera 1 car c'est un nombre premier
      $ isPrime.exe 646
      retournera 0 car ce n''est pas un nombre premier
      $ isPrime.exe -h ou sans argument
      affiche l'aide / version
      Tout cela fonctionne "sur le fond" mais en vrai je suis mécontent !
      Je suis mécontent des vérifications que j'apporte aux données saisies par l'utilisateur, ça laisse à désirer. Force est de constater que je ne maitrise pas encore la manipulation des différents types de base.
      Je suis également surpris par la petite taille d'un Integer pour stocker la valeur que je reçois. Du coup je catch une exception, ce n'est pas super propre, je me suis fait surprendre.

  • @R.e.n.e
    @R.e.n.e 2 ปีที่แล้ว

    Nice vid

  • @robertbel01
    @robertbel01 2 ปีที่แล้ว

    Un programmeur qui programme en C++ sait qu'il faut ABSOLUMENT enregistrer un fichier!!!!!!!!

    • @formation-video
      @formation-video  2 ปีที่แล้ว

      Ah, malheureusement non. Mais ce n'est pas grave, tout le monde apprend, sans cesse 😉

  • @farahbabr5308
    @farahbabr5308 ปีที่แล้ว

    C est sur MacBook ?

    • @formation-video
      @formation-video  ปีที่แล้ว

      Non, ce n'est pas un PC de la marque Apple, et c'est sur Windows 10

  • @Lykoro
    @Lykoro 12 วันที่ผ่านมา

    Alors j'ai eu le coup donc je met ça la il faut éviter les chemins relatifs car ca va le faire depuis l'endroit ou vous compilez exemple si vous mettes std::ifstream f{"../files/animal.txt"} et que vous compilez depuis le dossier parent de files ça ne marchera pas

    • @Lykoro
      @Lykoro 12 วันที่ผ่านมา

      Je sais pas si il y a une solution plus propre que les absolute path mais ça m'intéresse

    • @formation-video
      @formation-video  12 วันที่ผ่านมา

      Cela prend surtout à partir de l'endroit où se trouve ton exécutable.
      Là forcément il est au même endroit que le code source, mais dans un cas plus "réel", ça serait différent.
      On place donc toujours les ressources par rapport à l'emplacement de notre exécutable pour les chemins du programme, qu'ils soient relatifs ou absolus.

    • @Lykoro
      @Lykoro 11 วันที่ผ่านมา

      @formation-video moi en tout cas ca a vraiment pris depuis l'endroit d'ou j'exécutais le fichier donc si je suis dans download et que je fais ~/documents/main.c il faut que l'emplacement relatif du fichier le soit par rapport à downloads

    • @Lykoro
      @Lykoro 11 วันที่ผ่านมา

      je sais pas si j'ai été très clair

    • @Lykoro
      @Lykoro 11 วันที่ผ่านมา

      en gros j'avais mon code source dans un folder src et mon fichier dans un folder files a coté et donc j'ai mis ../files/animals.txt sauf que vu que je l'utilise depuis le dossier parent j'ai du mettre files/animals.txt

  • @douarmedouailislam1840
    @douarmedouailislam1840 ปีที่แล้ว

    j'ai pas compris la difference entre fichier binaire et fichier texte :((

    • @formation-video
      @formation-video  ปีที่แล้ว +1

      Un fichier texte est composé de caractères (comme ton fichier main.cpp), là où un fichier binaire (une image, une vidéo, un exécutable, etc.) est composé d'une suite d'octets 👍

    • @douarmedouailislam1840
      @douarmedouailislam1840 ปีที่แล้ว

      @@formation-video je pars du principe ou j'utilise un fichier comme base de données, comment savoir si je dois le faire en texte ou en binaire svp ?

    • @formation-video
      @formation-video  ปีที่แล้ว +1

      Généralement, on va faire ce choix suivant la complexité des données à stocker, les performances voulues en lecture/écriture, la compatibilité selon les supports.
      Dans ce cas précis, tu vas généraliser stocker des données complexes, donc le mode binaire semblerait le plus approprié (et le plus performant aussi).

    • @douarmedouailislam1840
      @douarmedouailislam1840 ปีที่แล้ว

      @@formation-video Merci beaucoup !

  • @patrickleboeuf8404
    @patrickleboeuf8404 10 หลายเดือนก่อน

    ok ca marche faute d'autographe que j'ai faite.... cette fonction voie juste les changement effectuer sur le dossier. est ce que cela ce voie uniquement si ont travail a partir de c++ ou cela vas également ce voir quand ont travail sur le fichier texte, bon je vais testé pour avoir cette réponse. il voie juste le travail qui ce fait dans son éditeur.