2013-03-27 6 views
18

Ich versuche nur, eine Textdatei zu erstellen, wenn sie nicht existiert und ich kann nicht fstream dafür zu bekommen scheinen.fstream wird keine Datei erstellen

#include <fstream> 
using std::fstream; 

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

Muss ich etwas in der open() Funktion, um es zu erhalten, geben Sie die Datei zu erstellen? Ich habe gelesen, dass Sie ios::in nicht angeben können, da erwartet wird, dass eine bereits vorhandene Datei vorhanden ist, aber ich bin nicht sicher, ob andere Parameter für eine Datei angegeben werden müssen, die nicht bereits vorhanden ist.

+0

ich glaube, Sie verwenden müssen: .open ("test.txt", fstream :: in) ; – FacundoGFlores

Antwort

14

Sie sollten fstream :: out zu öffnen Methode wie folgt hinzu: http://www.cplusplus.com/reference/fstream/fstream/open/

+1

Danke, das hat den Trick gemacht. – raphnguyen

+0

Darf ich nicht 'file.open (" test.txt ", fstream :: in | fstream :: out | fstream :: binary);' in eine Datei schreiben, die noch nicht existiert? – raphnguyen

+4

Sie sollten fstream :: trunc hinzufügen, wenn Sie möchten, dass fstream :: in eine nicht existierende Datei bearbeitet. – haitaka

10

Sie müssen einige Argumente hinzufügen. Auch Instancing und Öffnung kann in einer Zeile gesetzt werden:

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

Mehr Informationen über fstream Flaggen, lesen Sie in diesem Link:

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

Dies tun:

#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(); 
}