Russian Qt Forum
Май 14, 2024, 09:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как обрезать текстовый файл до нужной длины? C++  (Прочитано 4125 раз)
Lemondik
Гость
« : Апрель 28, 2016, 08:51 »

Предположим, есть test.txt, в нем текст из 500 символов. Мне нужно оставить 20 симолов.
С текстом работаю так:
fstream short("test.txt");
Как-то можно удалить все символы, начиная с 21 и до конца?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Апрель 28, 2016, 09:36 »

Попробуйте так
Код
C++ (Qt)
shortF.seekp(20);
shortF.put('\0');
shortF.close();
Не выйдет - курите исходники QFile::resize
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Апрель 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);
 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Апрель 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
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.174 секунд. Запросов: 23.