2015-01-05 5 views
-2

Я создаю программу, где я бы хотел проверить первую строку .txt-файла для определенной строки. Если эта строка подделана или не существует, я хотел бы удалить содержимое всего файла, чтобы предотвратить подделку файла. Я знаю, что при открытии можно удалить содержимое файла, но после проверки первой строки я не могу найти способ сделать это.Как удалить содержимое файла с помощью C++

getline(infile, fLine); 
cout<<fLine<<"\n"; 

if(fLine != "Line One"){ 
    infile.clear(); 
    outfile << "Line One\n"; 
    } 
+1

'ИОС :: clear' не делать то, что вы думаете, он делает .. Удалить файл и создать его заново. – Brandon

+0

['std :: ifstream :: clear()'] (http://en.cppreference.com/w/cpp/io/basic_ios/clear), вероятно, не делает того, что вы думаете. –

ответ

4

Просто ничего не писать в файл, его обрезания:

infile.close() 
infile.open("file.txt", fstream::out | fstream::trunc); 
infile.close() 

отмечает, что эта реализация будет зависеть от вашей декларации INFILE. Если это ifstream вам нужно будет сделать это:

ofstream outfile; 
outfile.open("file.txt", ofstream::out | ofstream::trunc); 
outfile.close() 
+0

Хорошо спасибо за быстрый ответ – Revant

Смежные вопросы