Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
1

Не работает макрос

26.05.2016, 20:09. Показов 2208. Ответов 4

Author24 — интернет-сервис помощи студентам
в лабораторной работе у меня надо написать макрос:
создать макроопределение (некий PRINT_TYPE) в зависимости от которого новосозданная функция PRINTME (строка), будет выводить данные
а) на консоль при помощи функции cout
б) в файл, в заранее известный файл при помощи fostream
в) на консоль при помощи функции print
г) в файл, в заранее известный файл при помощи fprintf
я вот написал:
C++
1
2
3
4
5
#define PRINT_TYPE(A,str) switch(A){case 1: cout << str << endl; break;\
case 2: printf("%s\n", str); break; \
case 3:{ ofstream sf("PRINT.txt"); sf << str << endl; sf.close(); break;}\
case 4: FILE * file; fopen_s(&file, "PRINT.txt", "w+"); fprintf(file, "%s", str); fclose(file); break; \
default: break;}
пишу в main ф-ции:
C++
1
string str = "TEST MY DEFINE"; PRINT_TYPE(1,str);
записи в файл есть но какая то белеберда, а на экран не выводит вообще ничего( ПОМОГИТЕ ПЛЕЗ!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2016, 20:09
Ответы с готовыми решениями:

макрос <L> не работает
Подскажите, как исправить эту ошибку? Error 1 error C2440: 'initializing' : cannot convert from...

Не работает макрос
Добрый день. Есть макросы:#define ACTION(var, value) int var = value; #define...

Если макрос на VBA переписать на С++, то макрос станет работать быстрее?
Всем привет!) У меня есть макрос написанный в Екселе на VBA, если его переписать на С++ , то...

Макрос делает копию листа и сохраняет в новую книгу, но макрос в новой не работает
Есть макрос в книге. Он копирует текущий лист, создает новую книгу и копирует в новую книгу лист. ...

4
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
26.05.2016, 21:15 2
Лучший ответ Сообщение было отмечено focusmns как решение

Решение

C++
1
PRINT_TYPE(1,str.c_str());
к тому же тело 4го кейса следует взять в скобки, как и у вас в 3ем кейсе
1
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
26.05.2016, 21:25  [ТС] 3
спасибо помогло, так это что получается, ф-ция printf работает только с типом char?
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
26.05.2016, 21:26 4
printf работает с разными типами, но это Си - функция и ничего о С++ классе std::string она не знает. строки в Си имеют тип char*
1
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
26.05.2016, 21:30  [ТС] 5
Парень вот вообще чисто от души выручил, спасибо.
0
26.05.2016, 21:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 21:30
Помогаю со студенческими работами здесь

Макрос работает, а код, преобразованный из макроса - не работает
Здравствуйте! Подскажите пожалуйста, почему функция выдаёт ошибку &quot;32538: в TempVar можно хранить...

Не работает макрос
Решил сделать макрос который бы, из одного журнала вырезал ячейки с информацией о человеке и...

Не работает макрос
Добрый день помогите макрос не срабатывает хотя должен переносить данные с одного листа на другой...

Не работает макрос
Всем привет, есть 3 файла, 1 из них берет данные из двух других. На старых версиях Office, т.е. на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru