Diriger la sortie d'une commande CMD vers un fichier

Résolu
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. Modérateur
    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. oui sauf qu'aucun autre programme ne l'utilise, je le cree meme sur place d'ailleur
      0
  2. 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. OK BIENSUR!!!!!!! Vraiment merci beaucoup.
      0