99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||
1 | ||||||
Чтение сммволов из файла и переход на новую строку26.02.2017, 21:38. Показов 8950. Ответов 26
Здравствуйте, уже час ломаю голову и ищу в инете
Нужно: считать с файла 12 символов и перейти на новую строку Сделал функцию:
при повторном вызове не считывает символы в чем проблема?
0
|
26.02.2017, 21:38 | |
Ответы с готовыми решениями:
26
Переход на новую строку при считывании из файла Переход на новую строку Переход на новую строку Переход на новую строку |
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|
26.02.2017, 21:44 [ТС] | 3 |
как тогда?
считать с файла 12 символов и перейти на новую строку (в строке больше или меньше 12) строк > 1000
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
|
26.02.2017, 21:46 | 4 |
Считывай строку целиком без ограничений, затем обрежешь её.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|
26.02.2017, 21:48 [ТС] | 6 |
в строке до 1 000 000
чтение столька символов очень затруднительно для проца (количество никак не оговорено в строке даже может быть 0 символов
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
|
26.02.2017, 21:53 | 7 |
О каком процессоре речь? На современных не заметишь.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|
26.02.2017, 21:55 [ТС] | 8 |
программа должна выполняться в строгие программы по времени
а файлов всего 20 собственно есть функции для установки курсора (ну или позиции) в файле это допустим fseek и fsetpos только что нашел, только не сообразил пока как ими пользоваться, как сдвинуть на N байт понял а вот как перейти на новую строку?
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
|
26.02.2017, 22:04 | 9 |
Эти функции оперируют позицией и не анализируют концы строк. Т. е. нельзя без считывания отбросить остаток строки.
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
26.02.2017, 22:12 | 10 |
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||
26.02.2017, 22:18 [ТС] | 11 | |||||
f.ignore()
что вернет за значение? Написал:
0
|
187 / 54 / 19
Регистрация: 23.12.2016
Сообщений: 165
|
|
26.02.2017, 22:21 | 12 |
Всё равно компилятор для перехода на новую строку после считывания 12 символов будет посимвольно анализировать файл, пока не найдет символ перехода на новую строку. Потому не принципиально - считать всю строку или 12 символов и перейти на следующую.
Да и вообще только вчера проверял - большие блоки данных одним куском считываются чуть медленнее чем мгновенно - менее 1 мс времени. Строки читаются медленнее - чтобы считать 11 тыс строк ушло аж 50 мс. Читать в string, только string переменную объявлять не в цикле, т.к. конструктор её работает достаточно долго, хотя и не критично.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|
26.02.2017, 22:25 [ТС] | 13 |
будет посимвольно считывать, но не записывать, что экономит память
0
|
187 / 54 / 19
Регистрация: 23.12.2016
Сообщений: 165
|
|
26.02.2017, 22:25 | 14 |
Вот как раз статья по скорости считывания разными методами, что мне вчера посоветовали.
https://habrahabr.ru/post/246257/
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
|
26.02.2017, 22:27 | 15 |
eXPonent, тебе же посоветовали ignore() - это как раз без считывания в твой буфер.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||
26.02.2017, 22:31 [ТС] | 16 | |||||
уже писал, что не сработало (с ключами тоже пробовал)
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
||||||
26.02.2017, 22:35 | 17 | |||||
Почему один-то? Надо ставить не меньше, чем их там может быть.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||
26.02.2017, 22:41 [ТС] | 18 | |||||
Если строки совпадают, тогда сохраняем эту строку
buff == s то не выполнилась f.ignore() просто например я знаю что если: 0&& B = 0 (и B условие вообще не выполняется)
0
|
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
|
|
26.02.2017, 22:49 | 19 |
Строки древние так не сравнивают.
0
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|||||||||||
26.02.2017, 23:33 [ТС] | 20 | ||||||||||
какое максимальное значение можно использовать вместо INT_MAX например с ULLONG_MAX - не работает и ещё если строка новая (так как в программе используется) getline(frus,rus,'<'); то функция начинает работать неверно забирая нужную строку Добавлено через 28 минут В итоге методом тыка заработала эта функция
(но у меня остались старые значения этой программы, так что не особо нужны)
0
|
26.02.2017, 23:33 | |
26.02.2017, 23:33 | |
Помогаю со студенческими работами здесь
20
Переход на новую строку Переход на новую строку Переход на новую строку Переход на новую строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |