Étant donné la sortie de programme C # suivante False
, injectez une ligne de code «malveillante» telle que le programme sort True
.
class Program
{
static void Main()
{
System.Console.Write("False");
;
}
}
Votre réponse doit consister en une chaîne qui remplace le deuxième point-virgule et provoque la sortie du programme True
, le tout True
et rien mais True
(pas même une nouvelle ligne). Il doit le faire si stdout est imprimé sur la console et si stdout est redirigé vers un fichier.
La réponse la plus courte l'emporte.
code-golf
c#
programming-puzzle
Kendall Frey
la source
la source
Réponses:
52 caractères
donc le tout devient:
la source
Write
.WriteLine
pourWrite
for(;;);
, rien de ce que j'ai vu n'exige que le programme se termine ...?}static Program(){System.Console.Write(0<1);for(;;);
pourrait toujours devenir}static Program(){for(System.Console.Write(0<1);;);
C #, 51 caractères
Ne fonctionnera que sur une sortie standard
la source
WriteLine
.Write
: / Je ne comprends pas comment nous pourrions résoudre ce problème si cela continue de changer ...Console.Write
, et vous pouvez utiliser\r
au lieu de 5\b
s.Console.Write("\rTrue ");
Vous pouvez généraliser la réponse de RamonBoza pour qu'elle fonctionne toujours si stdout est redirigé vers un fichier.
En supposant que le programme fonctionne sous Mono sous Linux, avec l'assembly
Mono.Posix.dll
chargé:Je doute que cela fonctionne sous Windows, mais il y a probablement un équivalent à
isatty()
.la source
83 ... WIP
J'espérais que ça marcherait, mais apparemment "False" n'est pas interné comme je l'avais espéré dans mon compilateur
non golfé
la source
la source
Je ne sais pas si cela est accepté.
La question ne dit rien sur les options du compilateur, je suppose donc que je peux changer le point d'entrée de l'application.
55 caractères, 3 de plus que la réponse acceptée
Plein
la source