Форум программистов, компьютерный форум CyberForum.ru

Вывод отладочной информации - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена символов в массиве http://www.cyberforum.ru/cpp-beginners/thread1195684.html
Помогите или подтолкните... заменить 1 0 в готовом коде на любые другие знаки. Например на 178 (▓) Заранее спасибо. http://www.cyberforum.ru/attachment.php?attachmentid=406305&stc=1&d=1401631890 #include <iostream> #include <conio.h> using namespace std; int main() {
C++ Повторный вызов конструктора класса class X { public: X() {a = 10;}; setA(int value) {a = value;}; private: int a; }; http://www.cyberforum.ru/cpp-beginners/thread1195682.html
Объявление функции C++
Завдання 1 Створити функцію яка приймає на вхід посилання на карту з ключем цілого типу,та значенням з плаваючою точкою. Другим параметром функції є число за плаваючою точкою. Функція повинна додати в карту число з плаваючою точкою по ключу,який рівний половині цілої частини цього числа. Наприклад,якщо передано 4,4567 то вписати це значення по ключу два. Якщо в карті вже міститься значення із...
C++ Есть ли ошибки в следующем фрагменте кода?
template <class D, C> D func2(int,C);
C++ Контейнер лист (поиск по контейнеру, взаимодействие контейнеров) http://www.cyberforum.ru/cpp-beginners/thread1195641.html
#include <iostream> #include <string> #include <locale.h> #include <list> using namespace std; class A { private: int price;
C++ Перегрузка оператора == и др C++ Builder ругаеться на перегрузку операторов. На mingw32-g++ все компилилось нормально. Пример пергрузки взял с хабра описание оператора class poly { ................. public: ......... friend bool operator==(const poly& left, const poly& right); подробнее

Показать сообщение отдельно
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
01.06.2014, 19:14     Вывод отладочной информации
Цитата Сообщение от hknower Посмотреть сообщение
можно с пом fprintf как-нибудь выводить на и консоль и в файл?
Возможно не лучшее решение, но можно использовать что-то вроде этого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
#define _DEBUG         // определяем _DEBUG
#define _DEBUG_CONSOLE // определяем _DEBUG_CONSOLE
#define _DEBUG_FILE    // определяем _DEBUG_CONSOLE
 
int main()
{
 
#ifdef _DEBUG // если определен _DEBUG, то заходим внутрь
    #ifdef _DEBUG_CONSOLE // если определен _DEBUG_CONSOLE, то заходим внутрь
        // и печатаем в консоль
    #endif
    #ifdef _DEBUG_FILE    // если определен _DEBUG_FILE, то заходим внутрь
        // и печатаем в файл
    #endif
#endif
    return 0;
}
Стоит учитывать, что некоторые среды разработки сами определяют _DEBUG, при конфигурации сборки Debug, то-есть строка
C++
1
#define _DEBUG         // определяем _DEBUG
скорее всего не понадобится. Определением или комментированием оставшихся двух макросов мы регулируем куда выводить или не выводить.

P.S. Вообще всех проблем можно избежать, если пользоваться встроенным отладчиком в среду разработки. Часто это оказывается намного лучше отладочной печати. Тут вам и отслеживание переменных в определенный момент времени, и состояние памяти, и состояние регисторов процессора.
 
Текущее время: 19:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru