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

функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки и стек http://www.cyberforum.ru/cpp-beginners/thread382658.html
Задача такова: пользователь с клавиатуры вводит строку, после введения запускается обработчик, который удаляет из этой строки символ "t". Обработанная строка заносится в стек. По введенной команде ret на экран выводится последняя обработанная строка. Основные проблемы с занесением строки в стек и извлечением из него целой строки. помогите с кодом, пожалуйста!
C++ Представление в памяти компьютера типа double нужна помощь в представление ВПК (в памяти компютера) тип данних double например нам дано такое: double y = -4.8e1 и хочем чтоб компилятор сделал такое: long w1 = *reinterpret_cast<long*>(&y)+33; я знаю как представляеться ВПК float, а так же знаю, что double примерно так же как и float представляеться ВПК подскажите алгоритм представление ВПК тип данних double!(делать мое задание не... http://www.cyberforum.ru/cpp-beginners/thread382646.html
Подсчитать количество различных пар букв C++
Помогите решить задачу, вернее переделать))) Во введенном слове подсчитать количество различных пар букв. ( например, в слове вавасавасd –5 различных пар букв). Нашёл на форумах такую же на С++, а нужно на Си. #include <map> { char str; cout<<RUS("Введите слово: "); cin.getline(str, 100);
C++ Подскажите с чего начать.
Доброго времени суток. По работе появилась необходимость работать с С.До этого изучал Java. Когда начинал Java сразу сел за NetBeans, и упустил некоторые базовые вещи которые за меня делала IDE, потом довольно трудно пытался понять основы.Сейчас не хочу наступить на те же грабли. Подскажите, пожалуйста, какую-нить простую IDE, и литературу. Спасибо за внимание.
C++ Динамические массивы http://www.cyberforum.ru/cpp-beginners/thread382612.html
Объясните пожалуйста что такое динамические массивы. Это массивы с не константным количеством элементов? Если так, то как их объявлять?
C++ Сортировка пузырьком. Приветствую, тех кто заглянул в топик. Помогите, пожалуйста, решить задачу на C пузырьковой сортировкой. Отсортировать символьный массив. Сначала цифры по убыванию, затем символы по алфавиту (английский язык, нижний регистр). Размер и сам массив вводятся пользователем. Результат вывести на экран. Буду очень благодарен. подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
13.11.2011, 11:52  [ТС]     функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы?
Ну я не знаю, чистый это С или не чистый. Откроем лучше стандарт С++, недавно принятый, пункт 16.3 И там увидим:
[IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-3.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-4.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-5.png[/IMG]
C++
1
2
3
4
5
6
16.3 Macro replacement
...
A preprocessing directive of the form
# define identifier replacement-list new-line
defines an object-like macro that 
...Ну так далее
Так что никуда они не делись из стандарта C++, а там остались.
...Давать ссыли на подобные сайты это бить ниже пояса, вё равно я их не осилю. Ладно, ваша взяла. Пусть именованные константы вообще лучше макроопределений. Но дело даже не в этом. Как сей факт поможет в решении моего вопроса? Никак. Просто теперь я буду знать, что именованные константы лучше макросов. Рад, очень рад.

...Пока что единственное, что мне удалось напропать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
 
#define nol    0
#define odin   1
#define dva    2
#define tre    3
 
 
class vivod_makrosov {
 public:
  vivod_makrosov () {}        
 ~vivod_makrosov () {}        
 
 ostream& operator<< (int);
 
};
 
 
ostream& vivod_makrosov::operator<< (int k) {                                  
 switch (k){
  case 0:
   return cout<< "nol";
  case 1:
   return cout<< "odin";
  case 2:
   return cout<< "dva";
  case 3:
   return cout<< "tri";
  default:
   return cout<< "немедленно разбирайся с макросами в двух местах: собственно в макросах\
   и в классе vivod_makrosov!";
  }       
}
 
vivod_makrosov vivod_makrosov_;
 
int f (int x) {
 return x;
}
 
 
int main () {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 vivod_makrosov_<< f(0)<< endl;
 vivod_makrosov_<< f(1)<< endl;
 vivod_makrosov_<< f(2)<< endl;
 vivod_makrosov_<< f(3)<< endl;
 vivod_makrosov_<< f(4)<< endl;
 getchar ();
 
 return 0;
}
Вывод:
C++
1
vivod_makrosov_<< f(0)<< endl
приемлем. То есть как и было заявлено, функция возвращает int, а выводится string. То, что при изменении возвращаемого значения придётся залезать в два места и там править всё это дело (в макросы и в класс) это недостаток, но я не знаю, как его решить.
[IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-1.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-2.png[/IMG]

Добавлено через 2 минуты

Не по теме:

С и С++ мешать это плохо, а "это Pure C-style" вместо "это чистый C-style" так ничё...

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