কোড ইনজেকশন সি # তেও কাজ করে!


15

নিম্নলিখিত সি # প্রোগ্রাম আউটপুটিং দেওয়া False, একটি 'দূষিত' কোড লাইন যেমন প্রোগ্রাম আউটপুট ইনজেক্ট True

class Program
{
    static void Main()
    {
        System.Console.Write("False");
        ;
    }
}

আপনার উত্তরটিতে একটি স্ট্রিং থাকা উচিত যা দ্বিতীয় সেমিকোলনটি প্রতিস্থাপন করে এবং প্রোগ্রামটিকে আউটপুট দেয় True, পুরোটি Trueএবং কিছুই Trueনা (এমনকি একটি নতুন লাইনও নয়)। স্ট্যান্ডআউটটি কনসোলে প্রিন্ট করা থাকলে এবং স্টডআউট যদি কোনও ফাইলে পুনঃনির্দেশিত হয় তবে এটি অবশ্যই করতে হবে।

সংক্ষিপ্ত উত্তর জেতে।


আপনার উদ্দেশ্য জয়ের মাপদণ্ড কী?
জেবি

@ জেবি কি ধাঁধা একটি বিজয়ী মানদণ্ড প্রয়োজন? সম্পাদনা করবে।
কেন্ডল ফ্রে

আমি বেশিরভাগ ক্ষেত্রে কোড-গল্ফের মন্তব্যে প্রতিক্রিয়া জানাচ্ছি, তবে মূল বিষয়টি দাঁড়িয়েছে: কোনটি গ্রহণযোগ্য উত্তর হবে?
জেবি

@ জেবি সংক্ষিপ্ত উত্তরটি সেরা উত্তর।
কেন্ডাল ফ্রে

আচ্ছা এটা হল কোড-গলফ,, তারপর করা হয় না?
জেবি

উত্তর:


17

52 অক্ষর

}static Program(){System.Console.Write(0<1);for(;;);

সুতরাং পুরো জিনিস হয়ে যায়:

class Program
{
    static void Main()
    {
        System.Console.Write( "False" );
    }
    static Program()
    {
        System.Console.Write( 0 < 1 ); 
        for ( ; ; ) ;
    }
}

আপনার উত্তরের মাঝখানে প্রশ্নটি সম্পাদনার জন্য দুঃখিত Sorry নিউলাইনগুলি আর অনুমোদিত নয়, আপনাকে ব্যবহার করতে হবে Write
কেন্ডাল ফ্রে

ঠিক আছে, আমি পরিবর্তন করেছি WriteLineকরতেWrite
Danko Durbić

1
আপনার প্রস্থানটি এর পরিবর্তে আপনি সম্ভবত কিছু বাইট সংরক্ষণ করতে পারেন for(;;);, আমি যা কিছু দেখিনি তার জন্য প্রোগ্রামটি বন্ধ হওয়ার দরকার নেই ...?
জোছিম ইসাকসন

@ জোয়াচিমআইসাকসন হ্যাঁ, এটি নির্দিষ্ট হিসাবে প্রয়োজনীয়তা পূরণ করে।
কেন্ডল ফ্রে

4
}static Program(){System.Console.Write(0<1);for(;;);সর্বদা হয়ে উঠতে পারে}static Program(){for(System.Console.Write(0<1);;);
NPSF3000

7

সি #, 51 টি অক্ষর

Console.Write("\b\b\b\b\b");Console.Write("True ");

কেবলমাত্র স্ট্যান্ডার্ড আউটপুট নিয়ে কাজ করবে


প্রথম জিনিসটি আমি চেষ্টা করেছি, দুর্ভাগ্যক্রমে প্রাথমিকের কারণে এটি কাজ করবে না WriteLine
ভেরিয়াস

3
এখন এটি Write: / আমি যদি পাই না তবে আমরা কীভাবে এটি সমাধান করতে পারি তা পরিবর্তিত হয় ...
Vereos

@ ভিরিওস আমি 'নিউলাইন বা কোনও নিউলাইন নয়' এর অস্পষ্টতা দূর করতে চেয়েছি।
কেন্ডাল ফ্রে

3
আপনার 2 টি উদাহরণ প্রয়োজন নেই Console.Writeএবং আপনি \r5 \bএর পরিবর্তে ব্যবহার করতে পারেন । Console.Write("\rTrue ");
ব্রায়ান এস

আমি মনে করি না এটি মানদণ্ড পূরণ করে। এটি প্রকৃতপক্ষে প্রথমে ফলসকে আউটপুট দেয়, এটি পরে সত্য দ্বারা পরে রচনাগুলি মুছে ফেলা হয়।
মাইক্রোবিয়ান

1

স্ট্যান্ডআউট যদি কোনও ফাইলে পুনঃনির্দেশিত হয় তবে আপনি এখনও কাজ করতে রামনবোজার উত্তরটি সাধারণ করতে পারেন।

ধরে নিই যে প্রোগ্রামটি মনো-র অধীনে লিনাক্সে চলবে, অ্যাসেম্বলি Mono.Posix.dllলোড সহ:

if(Mono.Unix.Native.Syscall.isatty(1))
{
    Console.Write("\rTrue ");
}
else
{
    // Truncate the output file first
    Console.OpenStandardOutput().SetLength(0);
    Console.Write("True");
}

আমি সন্দেহ করি এটি উইন্ডোজে কাজ করে, তবে সম্ভবত এর সমতুল্য isatty()


1

83 ... ডব্লিউআইপি

আমি এই কাজটি আশা করছিলাম, তবে দৃশ্যত "মিথ্যা" অভ্যন্তরীণ করা হচ্ছে না কারণ আমি আমার সংকলকটিতে আশা করেছি

//}unsafe static Program(){fixed(char*f="False"){*(long*)f=0x65007500720054;*(f+4)=' ';}
}unsafe static Program(){fixed(char*f="False")for(int i=5;i-->0;)*(f+i)="True "[i];

ungolfed

class Program
{
    static void Main(string[] args)
    {
        Console.Write("False");
    }

    unsafe static Program()
    {
        fixed (char* f = "False") for (int i = 5; i-- > 0; ) *(f + i) = "True "[i];
    }
}

1
class Program
{
    static void Main()
    {
        System.Console.Write("False");

        System.Console.Clear(); System.Console.Write("True");

        Console.ReadLine();
    }
}

স্টডআউট পুনঃনির্দেশিত হলে এটি কাজ করবে না।
কেন্ডল ফ্রে

0

এটি গ্রহণ করা হয়েছে কিনা তা নিশ্চিত নয়।
সংকলক বিকল্পগুলি সম্পর্কে প্রশ্নটি কিছু বলেনি তাই আমি ধরে নিই আমি অ্যাপটির এন্ট্রি পয়েন্টটি পরিবর্তন করতে পারি।
55 টি অক্ষর, গৃহীত উত্তরের চেয়ে 3 টি বেশি

}class P{static void Main(){System.Console.Write(1>0);}

সম্পূর্ণ

class Program
{
    static void Main()
    {
        System.Console.Write("False");
    }
    class P
    {
        static void Main() { System.Console.Write(1 > 0); }
    }
}

সম্প্রদায় স্বাগতম!
এরিক আউটগল্ফার

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ ধন্যবাদ এটি একটি দুর্দান্ত সাইট !!!
জর্জ ভোভোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.