Diriger la sortie d'une commande CMD vers un fichier

Résolu
lebusher Messages postés 27 Statut Membre -  
lebusher Messages postés 27 Statut Membre -
Bonsoir a tous.
voila, j' ai ecris le code suivant..

#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
#include <iostream>
#include <cstdlib>
#include <string>
#include <string.h>
#include <stdio.h>
#include <fstream>
#include <sstream>

int main()
{


std::ofstream file("result.txt",std::ios::out);
std::string command;
std::getline(std::cin, command);
command+= " >result.txt";
std::cout<< command.c_str() << std::endl;
system(command.c_str());
file.close();
return 0;
}



censé exécuter dans le cmd la commande entree et rediriger la sortie vers un fichier result.txt.
mais une fois la commande lancée, on me dis "le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus".
Je ne comprend pas ce qui cloche, si vous pouviez m'aider... merci d'avance.
A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

Un fichier ne peut être ouvert en écriture que par un seul programme à la fois. Donc si un autre l'a déjà bloqué tu ne peux plus écrire dessus.

Regardes par exemple des programmes comme Unlocker pour identifier les programmes qui ont la main dessus et éventuellement les forcer à libérer la ressource.
0
lebusher Messages postés 27 Statut Membre 17
 
oui sauf qu'aucun autre programme ne l'utilise, je le cree meme sur place d'ailleur
0
pkpkmépkpk Messages postés 737 Statut Membre 52
 
Bonsoir,
std::ofstream file("result.txt",std::ios::out);
std::string command;
std::getline(std::cin, command);
command+= " >result.txt";
std::cout<< command.c_str() << std::endl;
system(command.c_str());
file.close();
C'est ton objet file qui bloque le fichier result.txt...
0
lebusher Messages postés 27 Statut Membre 17
 
OK BIENSUR!!!!!!! Vraiment merci beaucoup.
0