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.

2 réponses

  1. 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
    1. 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
  2. Utilisateur anonyme
     
    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
    1. lebusher Messages postés 27 Statut Membre 17
       
      OK BIENSUR!!!!!!! Vraiment merci beaucoup.
      0