0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 24
|
||||||
1 | ||||||
Перестал создаваться поток для вывода в файл20.03.2015, 05:42. Показов 576. Ответов 5
Метки нет (Все метки)
Не пойму в чем проблема: была ошибка в расчетах, но вывод работал. пока я ковырялся в void L_spline, а именно менял начальные значения для a и b, и внутреннего цикла, то теперь считается правильно, а выводить в файл не хочет, вернее программа не идет после ofstream. Подскажите плз, как руки из задницы на место прикрутить?
Кликните здесь для просмотра всего текста
0
|
20.03.2015, 05:42 | |
Ответы с готовыми решениями:
5
Перестал создаваться отчёт Поток вывода в html файл Как направить поток вывода в файл? Как перегрузить оператор вывода в поток для вектора? |
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|||||||||||
20.03.2015, 18:40 | 2 | ||||||||||
no1imits, В вашем коде наблюдаются множественные проблемы и плохие практики. Изначально, проблема из-за которой Ваша программа не работала была в строке:
Фактически происходили некорректные обращения к памяти, не принадлежащей программе. Я попробовал несколько модифицировать Ваш код, чтобы убрать проблему. Поскольку я не знаком с доменом решаемой проблемы - не могу ручаться за корректность кода с точки зрения решения поставленной задачи, и тем не менее, слегка преобразованный код - большинство имен специально оставлены в старом виде для более легкого восприятия:
http://ideone.com/fvbCyS По поводу Вашего кода, более подробно: 1) Код плохо структурирован/форматирован 2) Присутствуют глобальные переменные 3) Память, выделяемая в функциях под массивы не очищается 4) Добавлена директива #include <math.h> на прямую подключающая загловочный файл библиотеки си, вместо #include <cmath> - каноничного в с++ коде 5) using namespace std; - плохая практика 6) ненужные комментарии в коде 7) не выразительные имена функций, названия переменных, 8) множественные действия внутри циклов for 9) закомментированный код 10) использование постфиксного инкремента вместо префиксного 11) использование сырых массивов, выделение памяти через new вместо векторов 12) вызов ostream::close при выходе из скоупа, когда ofstream сам закрывает открытые файлы в при уничтожении 13) отсутствие проверок деления на ноль
1
|
castaway
|
20.03.2015, 18:44
#3
|
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
20.03.2015, 18:46 | 4 |
С. Макконел Совершенный код. Д. Босуэлл, Т. Фаучер - Читаемый код или программирование как искусство Мартин Р. - Чистый код Мартин Фаулер - Рефакторинг. Стенли Липпман, Жози Лажойе - Язык программирования С++ Прата С. - Язык программирования С++ Страуструп Б. - Язык программирования С++
1
|
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 24
|
|
20.03.2015, 19:43 [ТС] | 5 |
На счет рукожопости понял, но не понятно почему программа не крашилась, при i выходящем за пределы массива, а только не создавала поток после?
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
20.03.2015, 19:48 | 6 |
no1imits, потому-что обращение к элементу массива, по невалидному индексу приводит к неопределенному поведению, оно может вести себя именно так, как Вы хотели, а может удалять Вам все на жестком диске, запускать ядерные боеголовки и изобретать лекарство от рака одновременно.
1
|
20.03.2015, 19:48 | |
20.03.2015, 19:48 | |
Помогаю со студенческими работами здесь
6
Перегрузить операторы ввода/вывода в поток (>>, <<) для класса Реализовать перегрузку операторов << и >> для вывода вектора в поток Почему не хочет создаваться файл? Разработать шаблон класса для вывода вектора данных в поток Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |