2013-03-27 12 views
18

Po prostu próbuję utworzyć plik tekstowy, jeśli nie istnieje i nie mogę uzyskać, aby to zrobić. fstreamfstream nie utworzy pliku

#include <fstream> 
using std::fstream; 

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

Czy muszę podać coś w funkcji open(), aby zmusić go do utworzenia pliku? Czytałem, że nie można określić, ios::in, ponieważ będzie oczekiwać istniejącego pliku, ale nie jestem pewien, czy należy podać inne parametry dla pliku, który jeszcze nie istnieje.

+0

Myślę, że trzeba użyć: .Open ("Test.txt", fstream :: w) ; – FacundoGFlores

Odpowiedz

14

Należy dodać fstream :: out otworzyć metodę tak:

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

Więcej informacji na temat flag fstream, sprawdź ten link: http://www.cplusplus.com/reference/fstream/fstream/open/

+1

Dziękuję, to załatwiło sprawę. – raphnguyen

+0

Czy nie wolno mi robić pliku 'file.open (" test.txt ", fstream :: in | fstream :: out | fstream :: binary);" w pliku, który jeszcze nie istnieje? – raphnguyen

+4

Powinieneś dodać fstream :: trunc, jeśli chcesz, aby fstream :: in działał na nieistniejącym pliku. – haitaka

10

Musisz dodać kilka argumentów. Również Instancing i otwarcie można umieścić w jednym wierszu:

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

to zrobi:

#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(); 
} 
Powiązane problemy