|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.12.2014, 12:09 | #1 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 35
|
Калькулятор, работа с файлами
Нужно вычислить арифметическое выражение, записанное в input.txt (между цифрами может быть сколько угодно пробелов) и записать его в output.txt
У меня программа работает, но тест. система говорит, что превышен лимит времени. Не пойму в чем дело, с файлами раньше не работала. И подскажите, пожалуйста, как код нормально вставить? Код:
Последний раз редактировалось Stilet; 06.12.2014 в 16:11. |
06.12.2014, 12:25 | #2 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
06.12.2014, 12:31 | #3 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 35
|
Почему не объявленный объект? Это же просто функция типа long long, принимающая указатель на массив и число элементов, не так?
|
06.12.2014, 13:42 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Считывание файла символ за символом довольно медленно.
Прочитайте про setvbuf() - это несколько ускорит, хотя все равно лучше читать файл блоками и обрабатывать эти блоки. |
06.12.2014, 13:50 | #5 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Всё так, почему и компиль мочит. Проблема в другом, в нерациональном использовании память. Как ни странно, но указатель на указатель, по-умолчанию исполъзует сегмент в 256 бит. Это не касается явнных выделений памяти alloc и malloc. Под них ваыделяется сплошная область. Для new, выдлятся динамичмкое пространство. Можно узнать и физические адреса выделения, но зачем?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
06.12.2014, 14:47 | #6 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 35
|
waleri
Вы имеете в виду считать весь файл в буфер и обрабатывать его будет быстрее? Smitt&Wesson Все не пойму, а где я использую указатель на указатель, разве у меня не просто указатель? Про память вроде поняла, тогда, наверное, попробую выделить по указателю память маллоком и передать этот указатель в функцию. |
06.12.2014, 15:24 | #7 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 35
|
Написала что - то такое, но результат вроде тот же
Код:
Вопрос решен Последний раз редактировалось Renge; 07.12.2014 в 11:48. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами | Konlor | Общие вопросы C/C++ | 2 | 18.05.2014 12:37 |
Работа с файлами | krikqwerty | Помощь студентам | 0 | 22.01.2013 18:14 |
Калькулятор, работа над ошибками. | Artem23 | Общие вопросы C/C++ | 6 | 22.12.2012 13:56 |
Работа с файлами в С | Tasha_no | Помощь студентам | 0 | 26.12.2010 17:08 |
работа с файлами | voron.kz | Помощь студентам | 4 | 15.11.2009 17:25 |