begin process at 2012 05 29 09:28:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

ifstream


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ifstream

vendredi 17 juin 2011 à 14:41:15 | ifstream

johnASP

Bonjour!

J'aurais voulu savoir si s'était possible de passer une variable en paramétre d'un
"ifstream()"?
Car je voudrais lire un fichier dont le chemin est enregistré dans une variable, mais le probléme c'est quand j'écrit:

std::ifstream file(chemin);

cela me donne l'erreur:

error C2664: 'std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const char *, std::ios_base::openmode,int)' : impossible de convertir le paramètre 1 de 'System::String ^' en 'const char *'

Merci d'avance!!
vendredi 17 juin 2011 à 14:52:32 | Re : ifstream

patatalo

Membre Club Administrateur CodeS-SourceS
salut,


Il suffit de trouver dans la classe String la méthode qui permet de renvoyer la chaîne ascii.

Ifstream prends 3 paramètres, il serait peut-être pas mal de consulter la doc à son sujet. Après avoir consulté celle de la classe String bien sûr.

@++
vendredi 17 juin 2011 à 15:23:44 | Re : ifstream

CptPingu

Administrateur CodeS-SourceS
std::ifstream file(chemin.c_str()).

Ifstream prends 3 paramètres,


Deux, non ? Le chemin et le mode (qui est par défaut suffisant et donc facultatif).
A moins qu'en .Net, il en ait ajouté un.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 17 juin 2011 à 17:14:16 | Re : ifstream

BruNews

Administrateur CodeS-SourceS
Ils n'ont rien ajouté car ifstream n'a rien à faire dans du .NET qui a des classes pour les fichiers comme pour quasi tout le reste.

ciao...
BruNews, MVP VC++
vendredi 17 juin 2011 à 17:52:43 | Re : ifstream

patatalo

Membre Club Administrateur CodeS-SourceS
@ CptPingu: n'assimilant pas paramètre par défaut à "pas de paramètre", j'ai simplement compté les virgules:

std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const char *, std::ios_base::openmode,int)'
vendredi 17 juin 2011 à 21:08:13 | Re : ifstream

CptPingu

Administrateur CodeS-SourceS
D'après la doc, il n'y a que deux paramètres:
http://www.cplusplus.com/reference/iostream/ifstream/ifstream/

Comme tu as éveillé ma curiosité :p, j'ai jeté un oeil directement aux sources de <fstream> (dans /usr/include/c++).
Je ne vois aucune trace d'un constructeur à trois arguments.
Code C/C++ :
 // [27.8.1.5] Template class basic_ifstream
  /**
   *  @brief  Controlling input for files.
   *  @ingroup io
   *
   *  This class supports reading from named files, using the inherited
   *  functions from std::basic_istream.  To control the associated
   *  sequence, an instance of std::basic_filebuf is used, which this page
   *  refers to as @c sb.
   */
  template<typename _CharT, typename _Traits>
    class basic_ifstream : public basic_istream<_CharT, _Traits>
    {
    public:
      // Types:
      typedef _CharT 					char_type;
      typedef _Traits 					traits_type;
      typedef typename traits_type::int_type 		int_type;
      typedef typename traits_type::pos_type 		pos_type;
      typedef typename traits_type::off_type 		off_type;

      // Non-standard types:
      typedef basic_filebuf<char_type, traits_type> 	__filebuf_type;
      typedef basic_istream<char_type, traits_type>	__istream_type;

    private:
      __filebuf_type	_M_filebuf;

    public:
      // Constructors/Destructors:
      /**
       *  @brief  Default constructor.
       *
       *  Initializes @c sb using its default constructor, and passes
       *  @c &sb to the base class initializer.  Does not open any files
       *  (you haven't given it a filename to open).
       */
      basic_ifstream() : __istream_type(), _M_filebuf()
      { this->init(&_M_filebuf); }

      /**
       *  @brief  Create an input file stream.
       *  @param  s  Null terminated string specifying the filename.
       *  @param  mode  Open file in specified mode (see std::ios_base).
       *
       *  @c ios_base::in is automatically included in @a mode.
       *
       *  Tip:  When using std::string to hold the filename, you must use
       *  .c_str() before passing it to this constructor.
       */
      explicit
      basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
      : __istream_type(), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }


On doit avoir une implémentation différente. Je serais dans ce cas curieux de savoir à quoi sert ce 3ème argument et sur quelle plateforme tu es.
Pour ma part, c'est la version 4.5.2 de gcc, sous Linux.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 17 juin 2011 à 21:26:30 | Re : ifstream

CptPingu

Administrateur CodeS-SourceS
J'ai ma réponse: http://msdn.microsoft.com/en-us/library/aa243815%28v=vs.60%29.aspx
Sous Windows, la STL n'est pas implémentée de la même manière, et il y a une option en plus pour gérer une option spécifique à cet OS.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 17 juin 2011 à 21:33:29 | Re : ifstream

BruNews

Administrateur CodeS-SourceS
Pour johnASP c'est ici:
http://msdn.microsoft.com/fr-fr/library/k3352a4t(VS.80).aspx

ciao...
BruNews, MVP VC++
mardi 21 juin 2011 à 11:57:17 | Re : ifstream

chikusa


En c++ je sais qu'on peux le faire. sa donne sa :

Code C/C++ :
string chemin = "ton_chemin";
ifstream monFlux(chemin.c_str())
{

}


The power is mine !!
mardi 21 juin 2011 à 16:41:32 | Re : ifstream

LA_Tupac

Membre Club
En c++ oui chikusa c'est bien ça.
Mais ceux qui disent qu'il y'a deux paramètres ont raison aussi mais il est facultatif pour les ifstream & ofstream. C'est pour les fstream (la classe mère) il permet de spécifier le mode d'accès: ios::in, ois::out, ios::app ... Et bien sur c'est du c++ pas du dotnet


Cette discussion est classée dans : variable, basic, chemin, std, ifstream


Répondre à ce message

Sujets en rapport avec ce message

Variable à volonté ! [ par AngeloVivaldi ] Salut.J'ai encore un problème du même type ...Je voudrai que le tableau de charactère, dans lequel l'opérateur inscrit un chemin de fichier, soit exte Autre problém de variable externe [ par mateo40 ] Voila, je déclare dans projet.cpp une variable de type AnsiString chemin. Elle contient le chemin d'un fichier à ouvrir.dans Thread_Chiffrement::Execu erreur link2001 [ par balbeau ] J'ai l'erreur souivante qui commence à "m'agacer"......Loading.obj : error LNK2001: symbole externe non résolu "class std::basic_ofstream > fout" (?fo probleme avec des variable membre public [ par titouf71 ] Bonjour,J'ai un gros probleme avec des variables membres public.J'ai declare une variable membre en public en CString dans ma classe CLecture.Je voudr Copyfile mache pas avec chemins en variable [ par sylfau ] Bjr,mon programme doit recopier un fichier 'date.txt', d'un répertoire vers un autre.Ca fonctionne quand j'entre mes chemins en constante :CopyFile (" Shared Library [ par omarlahlou ] Bonjour tout le monde, <p class="MsoN Chemin de fichier avec fopen en tant que variable (gros débutant) [ par jason_red2 ] Je m'explique:La fonction fopen admet, en tant qu'argument,des const char*, ce qui implique de définir le Path soit par une constante, un typedef pass ant script error link g++ [ par fmazoue ] I need help !!!I have error with linker I try to add but the script bug and do nothing ...but if I try directly in cmd this it's ok : g++ -o Util.dll 'std : : complex<float> une_variable' [ par nannouuD ] sltquel est la signification de 'std : : complex une_variable'? Problème de linkage [ par huguette45 ] Salut,je suis entrain de faire un projet en C++ (utilisant visual C++ 2005 Express) et j'ai quelques problèmes lors du linkage en fin de compilation..


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales