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

Помогите с макросом - C++

Восстановить пароль Регистрация
 
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
02.10.2011, 21:05     Помогите с макросом #1
нужно написать макрос(если это возможно)

сейчас у меня код выглядит так:
C++
1
std::cin<<a<<b<<c;
а после обработки должно выглядить так
C++
1
if(read)std::cout<<a<<b<<c; write(a);write(b);write(с);
причем букв a b с может быть любое количество(от одного до 5)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
02.10.2011, 21:15     Помогите с макросом #2
ЛеЖиК), уточните ваше задание, что значит
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
read
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
write
если это чтение и запись в файл то в макрос нужно ещё файловый поток ввести
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.10.2011, 21:27     Помогите с макросом #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
все возможно, хоть десять параметров
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
#define COUT(...) \
do { \
  int arr[] = { __VA_ARGS__ }; \
  for (size_t i=0;i<sizeof(arr)/sizeof(arr[0]);++i) \
  { \
     std::cout << arr[i] << " "; \
  } \
} while(0);
 
int main()
{
 COUT(1,2,3);
}
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
03.10.2011, 15:05  [ТС]     Помогите с макросом #4
-=ЮрА=-, нет, это функции котрые я буду еще писать

alex_x_x, спасибо, но вы не поняли
у меня часто в коде встречается std::cout и мне нехочется каждую заменять
хотелось бы что то типа
C++
1
#define std::cout<<a    if(read)std::cout<<a; write(a);
только мне кажетсяэта конструкция не правельна
вопрос в том как мне взять уту переменную a
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
03.10.2011, 15:42     Помогите с макросом #5
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
#define std::cout<<a * *if(read)std::cout<<a; write(a);
C++
1
#define COUT(a) * *if(read){ std::cout<<a; write(a); }
но read и write должны быть определены в точке указания макроса.
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
03.10.2011, 19:19  [ТС]     Помогите с макросом #6
Deviaphan, у меня в коде указано уже std::cout в многих частях, и я не хочу каждый раз менять на cout
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
03.10.2011, 20:12     Помогите с макросом #7
Тогда никак. cout заменять макросом не рекомендую.
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
04.10.2011, 07:52  [ТС]     Помогите с макросом #8
спасибо,хоть мучаться тогда с этим не буду, заменю все конструкции COUT()
Yandex
Объявления
04.10.2011, 07:52     Помогите с макросом
Ответ Создать тему
Опции темы

Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru