web-dev-qa-db-fra.com

fstream ne créera pas de fichier

J'essaie simplement de créer un fichier texte s'il n'existe pas et je n'arrive pas à obtenir fstream pour le faire.

#include <fstream>
using std::fstream;

int main(int argc, char *argv[]) {
    fstream file;
    file.open("test.txt");
    file << "test";
    file.close();
}

Dois-je spécifier quoi que ce soit dans la fonction open() afin de pouvoir créer le fichier? J'ai lu que vous ne pouvez pas spécifier ios::in Car cela s'attend à ce qu'un fichier déjà existant soit là, mais je ne sais pas si d'autres paramètres doivent être spécifiés pour un fichier qui n'existe pas déjà.

21
raphnguyen

Vous devez ajouter fstream :: out pour ouvrir une méthode comme celle-ci:

file.open("test.txt",fstream::out);

Plus d'informations sur les drapeaux fstream, consultez ce lien: http://www.cplusplus.com/reference/fstream/fstream/open/

18
haitaka

Vous devez ajouter quelques arguments. De plus, l'instanciation et l'ouverture peuvent être mises sur une seule ligne:

fstream file("test.txt", fstream::in | fstream::out | fstream::trunc);
11
ceruleus

Cela fera:

#include <fstream>
#include <iostream>
using std::fstream;

int main(int argc, char *argv[]) {
    fstream file;
    file.open("test.txt",std::ios::out);
    file << fflush;
    file.close();
}
2
ritesh_NITW