Инструменты пользователя

Инструменты сайта


// Повелся :-)

Задачка: http://bishop-it.ru/2010/03/codeinrussian

Ну там в комментах я написал, в gcc такое не проканывает (пока точно известно, что проканывает в MSVC, а как дела обстоят с компиляторами Intel/Sun/Borland мне не известно). Но… в транслите так же сделал вариант: http://codepad.org/zEs0pjLl или тут:

/*
 * Собирать: 
 *      gcc -include stih.h -o stih stih.c
 * Посмотреть вывод препроцессора:
 *      gcc -E -include stih.h -o stih stih.c
 */

/*
 * stih.h
 */
#include <stdio.h>

#define NACHALO int main() {\
                  char *out = NULL; \
                  char *txt = NULL; \
                  FILE *fp  = NULL;
#define KONETS    return 0;}
#define PROGRAMMY

#define Vyvedi
#define tekst
#define na
#define v
#define ekran out = NULL
#define fajl out =

#define nachalo ; if (out == NULL) \
                    fp = stdout;\
                  else \
                    fp = fopen(out, "w"); txt =
#define konets ; if (fp != NULL)\
                 {\
                  if (txt != NULL) fprintf(fp, "%s", txt);\
                  if (fp != stdout) fclose(fp); \
                 }
#define teksta


/*
 * stih.c
 * Тут перевел в транслит, т.к. gcc (только ли он?) не поддерживает #define РУССКИЙ
 * в общем, сути не меняет
 */
NACHALO PROGRAMMY

Vyvedi tekst na ekran

nachalo teksta
"YA pomnyu chudnoe mgnoven'e: \n\
Peredo mnoj yavilas' ty, \n\
Kak mimoletnoe viden'e, \n\
Kak genij chistoj krasoty."
konets teksta

Vyvedi tekst v fajl "Stikh.txt"

nachalo teksta
"V tomlen'yakh grusti beznadezhnoj\n\
V trevogakh shumnoj suety,\n\
Zvuchal mne dolgo golos nezhnyj\n\
I snilis' milye cherty."
konets teksta

KONETS PROGRAMMY

Комментарии