реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как перенаправить поток а IAR?
scout
сообщение Aug 2 2006, 12:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837



Кто - нибудь задавался этим вопросом? Собственно хочется приспособить класс ostream для форматированного выхода информации например в уарт.


--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью.
Конфуций
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 2 2006, 17:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(scout @ Aug 2 2006, 15:12) *
Собственно хочется приспособить


Найдите в документации на компилятор раздел:
"Standard streams for input and output"
Там авторы компилятора озаботилтсь осветить этот вопрос.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scout
сообщение Aug 2 2006, 18:21
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837



В доке на компилер описано как перенаправить вывод с помощью printf. А мне хотелось бы или перенаправить стандартный поток cout(что не хотелось бы, т.к он выводит данные на консоль, что очень удобно при отладке) или создать еще один обьект класса ostream и перегрузить оператор "<<" для всех типов данных. В обьявлении класса ostream оператор "<<" только обьявлены, т.е ничего не делает.

Так вот обьект то создать не проблема, а вот написать собственные функции перегрузки мне слабо.

Может у кого есть рабочий пример?


--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью.
Конфуций
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 2 2006, 18:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(scout @ Aug 2 2006, 21:21) *
А мне хотелось бы или перенаправить стандартный поток cout

Он туда-же упирается, можете подменять.
Цитата
или создать еще один обьект класса ostream и перегрузить оператор "<<"

Обычно в эмбедерстве поступают проще. Но может у Вас необычный случай?
И для чего этот использовать?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scout
сообщение Aug 2 2006, 19:33
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837



Цитата
Он туда-же упирается, можете подменять.


Ну подменю я эти функции, а если поток надо коммутировать скажем на уарт и индикатор, то как компилер поймет какую функцию ему использовать. Неудобно получается...

Если создавать свои потоки, как обьекты класса ostream, то на мой взгляд получается удобнее.

Цитата
Обычно в эмбедерстве поступают проще. Но может у Вас необычный случай?
И для чего этот использовать?


Для меня привычней и удобней использовать ввод/вывод с помощью потоков в стиле С++. Не вижу причин изменять привычкам smile.gif


--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью.
Конфуций
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 2 2006, 20:21
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(scout @ Aug 2 2006, 22:33) *
Ну подменю я эти функции, а если поток надо коммутировать скажем на уарт и индикатор

"Правильные" на мой взгляд варианты изложены:

http://electronix.ru/forum/index.php?showt...&hl=sprintf

Цитата
Для меня привычней и удобней использовать ввод/вывод с помощью потоков в стиле С++.

Тогда все таки _прочитайте_ рекомендованный ранее раздел документации и напишите
свою __write(), где добавите свой handler для LCD.

Цитата
Не вижу причин изменять привычкам smile.gif

С "больших машин" пришли? Возможно привычки стоит подвергнуть ревизии....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scout
сообщение Aug 3 2006, 05:06
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837



Цитата
"Правильные" на мой взгляд варианты изложены:


Ваши взляды я помню smile.gif

Zltigo спасибо вам за ответы.

А я ухожу ковырять это дело дальше.


--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью.
Конфуций
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 3 2006, 06:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(scout @ Aug 3 2006, 08:06) *
Ваши взляды я помню smile.gif

Извините :-( не обратил внимание, что уже общались и задавал лишние вопросы :-(.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scout
сообщение Aug 3 2006, 08:44
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837



Все ОК.


--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью.
Конфуций
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.03889 секунд с 7
ELECTRONIX ©2004-2016