begin process at 2012 05 30 01:17:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Ouvrir le nom d'un fichier dans une chaîne de caractères


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

Ouvrir le nom d'un fichier dans une chaîne de caractères

vendredi 27 novembre 2009 à 16:06:19 | Ouvrir le nom d'un fichier dans une chaîne de caractères

noname001

Bonjour à tous,

J'ai un soucis dans le développement d'un programme.
En effet, j'ouvre tout d'abord un fichier.txt qui contient toute une liste de noms d'autres fichiers.

La première ouverture se passe bien, mais ensuite pour lire toute cette liste ligne par ligne j'utilise la fonction getline. Celle-ci stock le nom du premier fichier dans un string.
Problème : Je n'arrive pas à ouvrir ce fichier!

Voici le code:

Code C/C++ :
#include <iostream>
#include <string> 
#include <cstring>
#include <fstream>


using namespace std;
const int MAX_SIZE_URL=50;
int main ()
{
    
    
    char T[MAX_SIZE_URL];
    
    
    ifstream file;
    file.open("stl/listepages.txt"); // j'ouvre cette fameuse liste

    if ( file ) // si le fichier s'ouvre
    {
      
       (file.getline(T, MAX_SIZE_URL)); 
       
       string mon_fichier = T;
       ifstream fichier;
       fichier.open(mon_fichier.c_str());
      
       if (fichier)
       {
                   cout << "marche";
       }
       else cout << "ne s'ouvre pas";
   
   }else cout << "ne s'ouvre pas";
   
   system("pause");

} 



J'ai déjà réalisé plusieurs recherches, et malheureusement aucune n'a été fructueuse!

Un grand merci à celui qui pourra m'aider
PS:Je travaille avec dev c++
vendredi 27 novembre 2009 à 17:09:22 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

fregolo52

Membre Club
difficile de voir, essaie d'ajouter des traces, style
Code C/C++ :
cout << "ne s'ouvre pas " << mon_fichier.c_str()
vendredi 27 novembre 2009 à 17:27:14 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

noname001

Alors, j'ai testé ce que contenait mon_fichier.c_str() .. et il contient bien le nom du fichier qui apparait à la première ligne de mon fichier liste.txt.

le problème se situe vraiment à l'ouverture du fichier, donc ici:

Code C/C++ :

(file.getline(T, MAX_SIZE_URL)); 
             
       
       string mon_fichier=T;
       ifstream fichier;
       fichier.open(mon_fichier.c_str());



Mais j'essaye plusieurs choses et toujours rien
vendredi 27 novembre 2009 à 17:37:55 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

fregolo52

Membre Club
pourquoi tu ne fais pas directement :
fichier.open(T); ?
vendredi 27 novembre 2009 à 17:40:57 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

fregolo52

Membre Club
autre question bête !!

tu es sûre de l'emplacement de ton fichier ? (liste.txt) par rapport à l'exécution de ton programme.
liste est où ? dans le répertoire stl ou au dessus ?
vendredi 27 novembre 2009 à 17:46:56 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

noname001

En fait , listepages.txt se trouve dans le dossier de dev c++ et il se situe dans le fichier stl donc "stl/listepages.txt".

Lui il s'ouvre sans problème et je peux travailler dedans. Et moi je veux ouvrir maintenant le premier fichier qui se trouve dans listepages.txt grâce à son nom. Mais maintenant que j'y pense ce fichier se trouve dans stl/...
et peut-être qu'il cherche dans stl/listepages.txt alors ?
vendredi 27 novembre 2009 à 17:47:52 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

Lucky92

Salut,
dans ce type de cas, il faut préférer la fonction getline globale, qui simplifie beaucoup ton code :

Code C/C++ :
#include <iostream>
#include <string> 
#include <fstream>

int main ()
{
	std::ifstream file( "stl/listepages.txt" );
	if ( file )
	{
		std::string mon_fichier ;
		while ( std::getline( file , mon_fichier ) )
		{
			std::ifstream fichier( mon_fichier.c_str() ) ;
			if ( fichier )
			{
				std::cout << mon_fichier << " marche" << std::endl ;
			}
			else
			{
				std::cout << mon_fichier << "ne s'ouvre pas" << std::endl ;
			}
		}
	}   
	else
	{
		std::cout << "stl/listepages.txt ne s'ouvre pas" << std::endl ;
	}
} 



vendredi 27 novembre 2009 à 17:52:30 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

fregolo52

Membre Club
bah voilà,
ton prog cherche dans le répertoire courant alors que ton fichier est dans stl !!!
C'est ca ?
On a trouvé le souci ! :)

vendredi 27 novembre 2009 à 17:58:58 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

noname001

Comment pourrais je faire pour ouvrir le nom contenu dans T alors ?

la première ouverture se fait par "stl/listespages.txt" ==> Marche correctement

et le fichier dont le nom est contenu dans T se trouve dans "stl".
Comment l'ouvrir ?

Merci pour votre aide!!
vendredi 27 novembre 2009 à 18:04:46 | Re : Ouvrir le nom d'un fichier dans une chaîne de caractères

noname001

C'est bon les gars, j'ai extracté tous les fichiers dehors de stl comme ça plus de soucis!

Merci à vous fregolo52, et lucky92 pour votre aide!


Cette discussion est classée dans : fichier, ouvrir, ouvre, file, include


Répondre à ce message

Sujets en rapport avec ce message

Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM Fichier include "glut.h" [ par Ben0007 ] Hello,J'obtiens ce message d'erreur en compilant un exemple de programme trouvé sur ce site:"fatal error C1083: Cannot open include file: 'gl/glut.h': Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d VC++ et erreurs de compilations :( [ par morpheus83z ] Bonjour tout le monde !Voilà, je ne comprends pas, j'ai un programme qui ne veut pas se compiler et je désespère vraiment ...#include // iostream.h e [C++] Ouvrir un fichier en donnant le chemin + parcours par caractère [ par Tamahoma ] Bonjour,je voudrais savoir comment ouvrir un fichier en donnant son cheminj'ai testé comme ceci :string chemin;cout << "saisir le chemin du fichier a Lecture d'un fichier et affichage de balises [ par SpiritAnghell ] Bonjour;Le programme suivant est censé extraire les balises d'un fichier xml et les afficher une par une:#include #include #include #include #include ouvrir plusieur fichierx textes [ par seignseifer ] Bonjour, alors je voudrais ouvrir plusieurs fichier textes pour mon programme. J'ai un peu avance mais je bloque sur quelquechose. Je fais une boucle Mettre la date dans un nom de fichier [ par IRIS21 ] Bonjour a tousj'ai un petite question a poser : je voudrais savoir comment faire pour "inserer" la date en nom de fichier lors de la création de celui sauvegarder un fichier en GTK [ par zaibacker ] Bonjour, jai un soucis avec la sauvegarde de fichier en gtk. Aucun probleme ni à l'éxécution ni à la compilation , seulement que le fichier n'est pas ouvrir un fichier [ par kelme ] Bonjour à toute et à tousj'ai crée une fenetre windows avec dev-C++, je cherche le code à ajouter avant return 0 si possible pour ouvrir un fichier pa


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,998 sec (3)

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