Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отладочный вывод VS 
:(
    Опции темы
Jeka178RUS
Дата 23.9.2013, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Добрый день!

Я был вынужден пересесть с QtCreator на MS Visual Studio и у меня возник глупый вопрос, на который я не смог найти простой вопрос:

В Qt creator есть панель "Вывод приложения" куда сыпется весь текстовый вывод через std::cout или кутишные методы qdebug/qwarning и т.д.
В VS есть панель "Output" однако никакого вывода std::cout я там не обнаружил (приложение конечно же оконное, в моем случае DirectX)

Неужели такая банальная вещь печать как печать cout в панельку вывода это Qt плюшка? Как обрести радость простого вывода в студии?
PM MAIL   Вверх
Amp
Дата 23.9.2013, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



OutputDebugString например.
PM MAIL   Вверх
Jeka178RUS
Дата 24.9.2013, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Ну хоть что-то. Правда выводить этой функцией что-то сложнее чем "Hello World" довольно неудобно ((
PM MAIL   Вверх
Earnest
Дата 25.9.2013, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Действительно, использовать непосредственно OutputDebugString неудобно.
Но в чем проблема? В MFC есть макрос TRACE для форматированного вывода. Если MFC не используешь, надо написать свой, элементарно же. 


--------------------
...
PM   Вверх
borisbn
Дата 25.9.2013, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(Earnest @  25.9.2013,  10:48 Найти цитируемый пост)
надо написать свой, элементарно же.  

Вот. Когда-то сделал себе наподобие Qt-шного qDebug'а
Код

class DebugOut
{
public:

enum
{
    UseSpace        = 0x01,
    UseCR           = 0x02,
    UseCharQuotes   = 0x04,
    UseStringQuotes = 0x08,
    UseBoolText     = 0x10,
};

    DebugOut( const char * const channel = 0, unsigned int options = ( UseSpace | UseCR | UseBoolText ) )
        : m_stream( std::ios_base::out )
    {
        fillStr( m_space,        options, UseSpace,        ' ' );
        fillStr( m_CR,           options, UseCR,           '\n' );
        fillStr( m_charQuotes,   options, UseCharQuotes,   '\'' );
        fillStr( m_stringQuotes, options, UseStringQuotes, '\"' );
        m_useBoolText = ( options & UseBoolText ) ? true : false;
        if ( channel )
        {
            m_channel = std::string( "<" ) + channel + std::string( ">" );
        }
    }
    ~DebugOut()
    {
        std::string str = m_channel + m_stream.str() + m_CR;
        OutputDebugStringA( str.c_str() );
    }
    template < typename T >
    inline DebugOut & operator << ( T t ) { m_stream << t << m_space; return *this; }
    inline DebugOut & operator << ( char c ) { m_stream << m_charQuotes << c << m_charQuotes << m_space; return *this; }
    inline DebugOut & operator << ( const char * s ) { m_stream << m_stringQuotes << s << m_stringQuotes << m_space; return *this; }
    inline DebugOut & operator << ( const std::string s ) { return operator << ( s.c_str() ); }
    inline DebugOut & operator << ( bool b )
    {
        if ( m_useBoolText ) m_stream << ( b ? "true" : "false" ) << m_space;
        else                 m_stream << int( b ) << m_space;
        return *this;
    }
    
protected:
    std::stringstream m_stream;
    std::string m_channel;
    char m_charQuotes[ 2 ];
    char m_stringQuotes[ 2 ];
    char m_space[ 2 ];
    char m_CR[ 2 ];
    bool m_useBoolText;
    
    inline void fillStr( char * str, int options, int flag, char ch ) { str[ 0 ] = str[ 1 ] = 0; if ( options & flag ) str[ 0 ] = ch; }
};



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Jeka178RUS
Дата 25.9.2013, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Спасибо!
Заморачиваться и писать что-то для банальной печати текста, это конечно жутко грустно :(

Интересное наблюдение, если в креаторе создать проект без использования Qt аналогичный проекту VS то cout все равно замечательно работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1316 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.