У мене є файл у вікнах. Я пишу на C ++. У мене є проблема, коли мені потрібно видалити деякі байти з кінця файлу. Я використовую ifstream, але я не знаю, як видалити ці символи, просто покласти "
Відповіді:
2 для відповіді № 1На машинах linux використовуйте скорочення (): http://linux.die.net/man/2/truncate
На комп'ютерах Windows використовуйте SetEndOfFile ():
http://msdn.microsoft.com/en-us/library/aa365531%28v=vs.85%29.aspx
Обидва виклики залежать від ОС.
2 для відповіді № 2
Ви не можете легко змінити розмір файлу, єдиний спосіб зробити це - скопіювати файл до тимчасового, потім видалити оригінал та перейменувати тимчасовий.
Якщо це всього лише припинення файлу, обидваWindows і Unix (але не обов'язково інші системи) мають функції системного рівня, які можуть це зробити, але нічого не існує в стандарті, який підтримує його. А якщо вам доведеться видаляти інші байти, ніж в кінці, ні Windows, ні Unix дозволяє це (хоча деякі інші системи роблять, принаймні, у конкретних випадках).
1 для відповіді № 3
Чому б не обрізати файл? Подивіться на chsize()
метод