2012-03-02 2 views
3

Привет, ребята, мне нужно руководство по удалению последнего символа в txt-файле. Например, если мой txt-файл содержит 1234567, мне нужен код C++ для удаления последнего символа, чтобы он стал 123456. Спасибо, ребята.C++ удалить последний символ в txt-файле

+1

Что вы пробовали? покажите свой код. Мы можем помочь вам решить конкретную проблему или понять, что вам странно, но мы не будем писать код вместо вас! – shift66

ответ

2

Единственный способ сделать это в переносном коде - это прочитать данные и выписать все, кроме последнего символа.

Если вы не против портативного кода, большинство систем предоставляют способы обрезания файла. Традиционный метод Unix - это поиск места, в котором вы хотите, чтобы файл завершился, а затем записать в файл 0 байтов в файл. В Windows вы можете использовать SetEndOfFile. Другие системы будут использовать разные имена и/или методы, но почти у всех будет возможность в той или иной форме.

0

Если входной файл не слишком велик, вы можете сделать следующее: -

1. Read contents into a character array. 
2. Truncate the original file. 
3. Write back the character array to the file, except the last character. 

Если файл слишком велик, возможно, вы можете использовать временный файл вместо массива символов. Это будет немного медленным, хотя.

2

Для портативного решения, то вдоль этих линий должны сделать работу:

#include <fstream> 

std::ifstream fileIn("file.txt");    // Open for reading 
std::string contents; 
fileIn >> contents;        // Store contents in a std::string 
fileIn.close(); 
contents.pop_back();        // Remove last character 
std::ofstream fileOut("file.txt", ios::trunc); // Open for writing (while also clearing file) 
fileOut << contents;        // Output contents with removed character 
fileOut.close(); 
Смежные вопросы