![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Подскажите как можно реализовать рисование графика функции в текстовом файле с помощью символа "*".
Вот моя программка, но почему то рисует только 1 строку с 1 звездочкой и не делает переброс на следующую строку хотя и стоит endl какие в ней могут быть проблемы??
|
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Возможно нужно использовать 2х мерный массив, сначала график вложить в него а потом вывести массив???
|
|||
|
||||
cristaloleg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 15.6.2009 Где: Donetsk Репутация: нет Всего: нет |
Dikey, а вы не заполняете пустое место пробелами...естественно у вас точки графика будут прилегать одна к одной, но ведь это не правильно.
|
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Даже заполняя пустое место выходит одна строка,почемуто неправильно работает переход на новую строку.
|
|||
|
||||
нуп |
|
|||
![]() Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: нет Всего: 33 |
попробуй "\r\n" вместо endl
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Dikey, попробуй вместо ужаса внутри цикла while() использовать fil << std::setw(x+1) << std::setfill(' ') << '*' << std::endl;
Ошибка твоя в том, что ты перемещаешь указатель вывода в файл в позицию за его концом. По идее, должен включаться флаг ошибки и остальные операции должны игнорироваться до вызова fil.clear(). |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Подскажите по поводу функций std::setw(x+1) и std::setfill(' ')??
компилятор говорит undeclared подключены следующие файлы
Какой подключить файл, чтоб работали вышеописанные функции? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А google на что?
|
|||
|
||||
Dikey |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Сразу не подумал про гугл. Подскажите что делаю неправильно?
|
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
1. стандартные хидеры нужно заключать в угловые скобки, а не в двойные кавычки. Двойные кавычки только для файлов твоего проекта.
2. зачем тебе stdio.h? 3. при каждом изменении x у тебя файл удаляется и создается новый. Думаю, ты не этого хотел. 4. есть цикл работающий по условию "пока y меньше пятидесяти", а где этот y увеличивается? 5. Зачем закрываешь файл сразу после записи в него данных? Ты понимаешь, что на следующей итерации цикла в файл больше ничего не запишется? |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Спасибо за подсказки, я поспешил и не заметил этих очень грубых ошибок.
Теперь все работает, мой вопрос решен.Жаль я до этого сам не дошел, хоть мне и незнакомы объекты setw setfil. С++ сложная штука, не могу никак понять логику, основные принципы ясны, но С++ это громадные библиотеки с которыми еще нужно научится работать.
|
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Про угловые скобки ты видимо не понял, писать надо так:
Объекты типа fstream закрывать не обязательно - при уничтожении они закрываются автоматически. Это тебе не С. Где форматирование кода? Префиксная форма операторов приращения (++ и --) предпочтительней постфиксной, читать тут. Вывод в поток std::endl довольно долгая операция, так как она связана с выгрузкой буферов на диск. Лучше выводить просто '\n'. Короче, твоя программа должна выглядеть так:
Это сообщение отредактировал(а) bsa - 3.2.2010, 00:19 |
||||
|
|||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Спасибо, за подключаемые файлы прочитал:
При угловых скобках компилятор ищет включаемые файлы в папке стандартной библиотеки, а при кавычках ищет в папке с проектом, это ускоряет компиляцию больших проектов. Массив я забыл убрать, он не нужен. Про инкремент и декремент очень полезная информация и спасибо за подсказку о конце строки. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |