alors je veux créer une fonction pour compter le nombre de mot dans un fichier texte
la voici
unsigned long long int count(std::ifstream &fichier)
{
unsigned long long int numberWord{0LL};
std::string word;
while (fichier >> word)
++numberWord;
return numberWord;
}
mais lorsque je l'appelle dans la fonction main avec
std::ifstream lecture("C:\Users\NAPOLEON\Desktop\exemple.txt");
unsigned long long int numberWord=count(lecture);
std::cout<<numberWord<<'\n';
visual studio me sort ::
Gravité Code Description Fichier Projet État de la suppression
Erreur C2280 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::basic_ifstream<char,std::char_traits<char>> &)' : tentative de référencement d'une fonction supprimée
Gravité Code Description Fichier Projet État de la suppression
Erreur (active) E1776 impossible de faire référence à fonction "std::basic_ifstream<_Elem, _Traits>::basic_ifstream(const std::basic_ifstream<_Elem, _Traits> &) [avec _Elem=char, _Traits=std::char_traits<char>]" (déclaré à la ligne 944 de "C:\Program Files\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\fstream") -- fonction supprimée
Mis à part le fait que tu utilises mal de "\" dont tu n'as pas besoin : les "/" sont très bien utilisés par ifstream sous Windows. Ton code est correct d'après : http://coliru.stacked-crooked.com/a/1464b2050d3ea21e . A voir si :
ce n'est pas plutôt à l'exécution que ça râle (tu ne vérifies pas que le fichier est bien ouvert avant de le manipuler,
il n'y a pas plus de code en réalité et il y aurait des erreurs dedans.
#include <iostream>
#include <windows.h>//pour que l'on puisse afficher les accents dans la console
#include "readAndCount.h"
#include <fstream>
#include <string>
#include <vector>
int main()
{
using namespace std::string_literals;
SetConsoleOutputCP(65001);//configure la sorti des accents à la console
std::cout << R"*(BIENVENUE ICI ENTRéE LE NOM D'UN FICHIER TEXTE SUR VOTRE BUREAU,ET NOUS COMPTONS LE NOMBRES DE MOTS QU'IL CONTIENT)*" << '\n';
std::cout << "entrer le nom du fichier texte suu le bureau" << '\n';
std::string nomFichier;
std::cin >> nomFichier;
std::ifstream lecture{ read(nomFichier) };
if (!lecture.is_open())
{
std::cout << "une erreur c'est produite lors de la lecture du fichier." << '\n';
}
unsigned long long int numberWord = count(lecture);
std::cout << numberWord << '\n';
system("pause");
}
readAndCount.cpp
#include"readAndCount.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
std::ifstream read(const std::string &nomFchier)
{
const std::string cheminBureau{ R"*(C:\Users\LENOVO\Desktop\)*" };
const std::string cheminFichier{ cheminBureau + nomFchier + ".txt" };
std::ifstream fichier(cheminFichier.c_str());
return fichier;
}
unsigned long long int count(std::ifstream &fichier)
{
unsigned long long int numberWord{0LL};
std::string word;
while (fichier >> word)
++numberWord;
return numberWord;
}
readAndCount.h
#pragma once
#include <fstream>
#include <string>
#include <vector>
std::ifstream read(const std::string &nomFchier);
unsigned long long int count(std::ifstream fichier);
- Edité par NapoléonMbaya 15 février 2019 à 13:57:32
Effectivement, ton problème n'est pas adapté à ma remarque :-)
problème avec ifstream
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
En recherche d'emploi.