Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2018, 15:07   #1
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию Очистка буфера

Здравствуйте!
Есть работающая программа. Читает файл, и если находит строку с числами, считает количество чисел и заносит строку с числами в контейнер "вектор".
Если в следующей строке чисел больше, то вектор очищается и туда записывается эта новая строка.
Потом вектор записывается в новый текстовый документ.
Проблема в том, что когда открываешь вновь образованный файл куда записался этот вектор, то первая строка пустая.
Понимая, что в буфере остаётся '\r' и записывается в новую строку, я использовал в условии записи перед записью cout<<endl;
Но заходов в условие записи строки в вектор может быть много, и тогда в консоли появляется большое поле пустых строк. Как бы и фиг с ним, но хочется красиво.
Скажите пожалуйста, что в такой ситуации можно использовать вместо endl?

Последний раз редактировалось KAMLS; 29.10.2018 в 15:11.
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 15:11   #2
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Не, в некоторых случаях и endl не помогает.
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 15:20   #3
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

В общем всё хорошо, если строка с самым большим количеством чисел в первой строке считываемого файла, откуда считывается информация в вектор.
То есть проблемы появляются при использовании v.clear();
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 15:22   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы код показывайте. И причем к файлу и вектору cout < endl?
p51x на форуме Ответить с цитированием
Старый 29.10.2018, 15:30   #5
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
причем к файлу и вектору cout < endl?
Да понял уже что ни при чем. Там как то именно при очистке вектора эффект получается, при перезаписи его..
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 15:48   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Очистка не причем, скорее всего вы переводы строк записываете. Ваш код вообще веселый: неиспользуемые инклуды, char присваивается NULL, все файлы открываются и для чтения, и для записи, и для дозаписи, файл читается посимвольно...
p51x на форуме Ответить с цитированием
Старый 29.10.2018, 15:52   #7
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
скорее всего вы переводы строк записываете
Я их пытался ловить в тех местах где они могут возникнуть.
Ловил так:
Код:
if(ch=='\r')
ch=NULL;
не помогло.
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 15:53   #8
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
файл читается посимвольно...
Это чтобы выявить цифры после точки в вещественном числе. В едином так сказать стиле с остальными символами.
KAMLS вне форума Ответить с цитированием
Старый 29.10.2018, 16:05   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Ловил так:
1. А \n ?
2. И что будет, если NULL записать в качестве строки в файл?

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Это чтобы выявить цифры после точки в вещественном числе. В едином так сказать стиле с остальными символами.
Например, читайте сразу строку и парсите from_chars строку в памяти.
p51x на форуме Ответить с цитированием
Старый 29.10.2018, 16:34   #10
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Например, читайте сразу строку и парсите from_chars строку в памяти.
Бывает что вот так 234.23у
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистка буфера ввода консоли Anton_Jag Общие вопросы C/C++ 7 03.06.2018 20:08
очистка буфера обмена beegl Общие вопросы Delphi 21 04.01.2017 11:01
переполнение буфера freekyn Помощь студентам 3 25.04.2013 17:21
Очистка буфера клавиатуры Van-89 Паскаль, Turbo Pascal, PascalABC.NET 6 11.09.2012 19:40
Очистка буфера клавиатуры Hell Knight Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 01.03.2011 18:15