cs_Sagittarius
Messages postés3Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention26 mars 2004
-
25 mars 2004 à 17:00
Hylvenir
Messages postés364Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 octobre 2006
-
26 mars 2004 à 18:31
J'ai besoin d'acceder à partir de mon code c++ à un fichier situé dans un sous repertoire
Afin de copier certaines infos contenus dans ce fichier !
Pas de problemes pour copier les infos mais impossible d'ouvrir le fichier !!
Important :
Le chemin d'acces du sous repertoire est fixé mais c'est l'utilisateur qui rentre le nom du fichier !
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 25 mars 2004 à 19:48
Commence par vérifier les droits que tu as sur le fichier. Je ne comprends pas bien ton msg, tu dis que tu n'as pas de blem pour copier les infos mais que tu ne peux pas ouvrir le fichier, comment peu tu copier des infos contenues dans un fichier alors que tu ne l'a pas ouvert ?
cs_Sagittarius
Messages postés3Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention26 mars 2004 26 mars 2004 à 16:21
Désolé je me suis mal exprimé en fait je voulais dire que je sais faire un algo éprouvé de lecture écriture de fichier.
Par contre ce que je n'arrive pas à faire :
c'est ouvrir un fichier dont le nom est rentré par l'utilisateur : !!
en fait je croyais que dans fopen il fallait un nom de fichier rentré dans le code directement
ex: fopen("fichier.dat", ios ...)
Mais peut etre qu'on peut mettre un char* en parametre ... parceque je pouvais pas mettre un string...
Je vais essayer
Hylvenir
Messages postés364Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 octobre 20062 26 mars 2004 à 18:31
Pour utiliser un fstream avec une string tu dois
utiliser c_str() qui te renvoie un const char* pour ta string.
ex:
std::string filename = "data.txt";
ifstream file( filename.c_str() );
ou
ifstream file;
file.open( filename.c_str() );
si tu tiens vraiment à utiliser open.
tu peux utiliser des / pour les répertoires.
ça évite les \\,
#include
#include <fstream>
using namespace std;
int main()
{
ifstream file( "./usr/string.cpp" );
if ( !file )
cout << "Erreur ouverture" << endl;