Dado el siguiente script de Python 3:
def greet():
    print("Hello, world!")
greet()
Anteponga algunas líneas a este archivo de texto para que pueda ejecutarse como un programa Python, así como compilarse y ejecutarse como un programa C ++ que produce la misma salida. ¡Hola, mundo! (incluida la nueva línea al final):
$ python3 bilingual.py.cpp
Hello, world!
$ g++ bilingual.py.cpp && ./a.out
Hello, world!
La solución se puntuará por el recuento de caracteres que no sean espacios en blanco de todo el programa, incluido el script de Python:
sed 's/\s//g' bilingual.py.cpp|wc -c

Respuestas:
Puntuación 116
Anteponer:
La barra diagonal inversa del preprocesador
\tira de la desagradable:línea de contención en una macro no utilizada. Pruébalo aquí .Gracias a la respuesta de edc65 para la nota sobre int implícito en C ++ 4.
Gracias a la respuesta de PieCot por sugerir
<cstdio>más<stdio.h>.Gracias a Leon por sugerir que elimine
Xel original#define X\.fuente
Puntuación 119
(Thx @Linus para el recuento de bytes)
(1 byte guardado gracias a @Conor O'Brien) (1 byte guardado gracias a @PieCot)
Contando bytes nuevamente a mano, encontré 113. Quizás esta vez sea correcto.No, no esNotas: stdio y put todavía están vivos y pateando en C ++. El tipo int faltante es válido en C ++ 4. Prueba
fuente
0de la línea 2. Prueba.Puntuación
131 130134Las líneas a anteponer son:
Y el código resultante:
Pruebas
fuente
#importno es válido C ++:Puntuación
110104Mejorando la respuesta de Linus :
Prueba como C ++
Prueba como Python
fuente
Puntuación 136
Solo para los registros:
Otra forma (menos eficiente) de manejar el colon.
fuente
cstdiodebe tenerse en cuenta.tr -d '[:space:] ' < bilingual.py.cpp | wc -cobtengo 128, mientras que este:tr -d '[:blank:] ' < bilingual.py.cpp | wc -cproporciona 136