2013-06-10 13 views
23

Programuję w C++. W moim kodzie tworzę plik tekstowy, zapisuję dane do pliku i odczytuję z pliku za pomocą strumienia, po zakończeniu sekwencji, której pragnę, chcę wyczyścić wszystkie dane w pliku txt. Czy ktoś może mi powiedzieć polecenie, aby wyczyścić dane w pliku txt. Dziękujemywyczyść dane wewnątrz pliku tekstowego w C++

+0

mam nadzieję, że pomoże ci http://stackoverflow.com/questions/4815251/how-do-i-clear-the-whole-contents-of-a-file-in-c –

Odpowiedz

35

Jeśli po prostu otworzysz plik do zapisu przy pomocy opcji skrótu, usuniesz zawartość.

std::ofstream ofs; 
ofs.open("test.txt", std::ofstream::out | std::ofstream::trunc); 
ofs.close(); 

http://www.cplusplus.com/reference/fstream/ofstream/open/

+1

thanks .. robi tę opcję usuwać zawartość po uruchomieniu tej linii lub po zamknięciu pliku? – Zeyad

+0

Zawartość jest usuwana po otwarciu ze std :: ofstream :: trunk. – PureW

4

Usunięcie pliku spowoduje również usunięcie zawartości. Zobacz remove file.

+0

Ta odpowiedź ma mniej kodu (pojedyncza linia!) I lepiej czytelny kod niż odpowiedź zaproponowana przez PureW. –

+3

Moja interpretacja pytania polegała na wyczyszczeniu zawartości pliku, a nie usunięciu pliku. – PureW

+0

@PureW: Usunięcie pliku jest jedną z metod czyszczenia zawartości. –

2

Jeśli ustawisz flagę obcinania.

#include<fstream> 

using namespace std; 

fstream ofs; 

int main(){ 
ofs.open("test.txt", ios::out | ios::trunc); 
ofs<<"Your content here"; 
ofs.close(); //Using microsoft incremental linker version 14 
} 

Przetestowałem to na wskroś dla własnych potrzeb we wspólnej sytuacji programistycznej, którą miałem. Zdecydowanie upewnij się, że preformujesz ".close();" operacja. Jeśli tego nie zrobisz, nie dowiesz się, czy tępisz, czy po prostu aplikację na początku pliku. W zależności od typu pliku, który może być dołączony do pliku, który w zależności od potrzeb może nie spełnić swojego celu. Pamiętaj, aby wywołać ".close();" explicity na strumień, który próbujesz zastąpić.