Russian Qt Forum

Программирование => С/C++ => Тема начата: Lemondik от Апрель 28, 2016, 08:51



Название: Как обрезать текстовый файл до нужной длины? C++
Отправлено: Lemondik от Апрель 28, 2016, 08:51
Предположим, есть test.txt, в нем текст из 500 символов. Мне нужно оставить 20 симолов.
С текстом работаю так:
fstream short("test.txt");
Как-то можно удалить все символы, начиная с 21 и до конца?


Название: Re: Как обрезать текстовый файл до нужной длины? C++
Отправлено: Igors от Апрель 28, 2016, 09:36
Попробуйте так
Код
C++ (Qt)
shortF.seekp(20);
shortF.put('\0');
shortF.close();
Не выйдет - курите исходники QFile::resize


Название: Re: Как обрезать текстовый файл до нужной длины? C++
Отправлено: __Heaven__ от Апрель 28, 2016, 10:21
Код
C++ (Qt)
   stream.open("D:\\123.txt", std::ios::in);
   constexpr int bufferSize = 20;
   std::array<char, bufferSize> buffer;
   stream.read(buffer.data(), bufferSize);
   stream.close();
 
   stream.open("D:\\123.txt", std::ios::out);
   stream.write(buffer.data(), bufferSize);
 


Название: Re: Как обрезать текстовый файл до нужной длины? C++
Отправлено: Igors от Апрель 28, 2016, 11:35
Код
C++ (Qt)
   stream.open("D:\\123.txt", std::ios::in);
   constexpr int bufferSize = 20;
   std::array<char, bufferSize> buffer;
   stream.read(buffer.data(), bufferSize);
   stream.close();
 
   stream.open("D:\\123.txt", std::ios::out);
   stream.write(buffer.data(), bufferSize);
 
Если "средствами Qt", то есть удобное QFile::resize, я так понял вопрос был как сделать это средствами std