প্রোগ্রামে একটি লাইন লিখুন যা অকেজো [বন্ধ] দেখায়


26

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

int main(void) {
    /* The line below is actually needed. */
    2 + 2;

    return 0;
}

যেহেতু এটি জনপ্রিয়তা প্রতিযোগিতা, সর্বাধিক সংখ্যক ভোটের সাথে সমাধানটি জয়ী।


2
উদাহরণে লাইনটি প্রয়োজনীয় কেন?
গ্যারি বিএন

3
@ গারিবিএন এটি নয়: "এই উদাহরণে, লাইনের আসলে প্রয়োজন হয় না, এটি কেবল একটি উদাহরণ"।
এলেক্সেনাইড

9
@ এডকোটারেল জেনে রাখা ভাল ... আমি ভেবেছিলাম আমি কিছু প্রাথমিক জিনিস মিস করেছি ...
গ্যারি বিএন ২

2
সুতরাং এটি করা হয় না। উদাহরণস্বরূপ। :-)
ফ্লোরিয়ান এফ

1
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ ছদ্মবেশী চ্যালেঞ্জগুলি এখন আর এই সাইটে অন টপিক নয়। meta.codegolf.stackexchange.com/a/8326/20469
বিড়াল

উত্তর:


33

সি

int main(int argc, char **argv) {
    switch(argc) {
        case 2:
            ;
            int allowed = 0;
        case 3:
            argc--;
            break;
        default:
            argc = 3;
    }
    return 0;
}

আমরা একক মুছে ফেললে সংকলন করবে না ;

সম্পাদনা :

সমাধান নীচে:

এটি ঘটেছিল কারণ একটি caseবিবৃতি কেবল একটি লেবেল, এবং যেমন একটি বিবৃতি অনুসরণ করা আবশ্যক (যা মানটিকে "কর্ম সম্পাদনের জন্য নির্দিষ্টকারী" হিসাবে উল্লেখ করা হয়, যা ঘোষণার বিধি নিষেধ করে)। এটি প্রতিরোধ করতে, আমরা একটি ;, একটি নাল বিবৃতি দিয়ে ঘোষণার উপসর্গ করেছি । caseলেবেলের জন্য বিশেষ উল্লেখগুলি এখানে 142 পৃষ্ঠাতে পাওয়া যাবে (131 ইন-ডকুমেন্ট)


4
জিসিসি বলেছে যে "একটি লেবেল কেবলমাত্র একটি বিবরণের অংশ হতে পারে এবং একটি ঘোষণা বিবৃতি নয়"।
ভোর্টিকো

1
আমি স্কুলের জন্য লিখছি এমন একটি প্রোগ্রামে আমি এটি দ্বারা কামড়েছি।
কেভিন -

এটি বাস্তব প্রোগ্রামগুলিকে প্রকৃতপক্ষে দেখতে দেখতে কুৎসিত দেখায়: \
মঞ্চে পুনরায় সেট করুন মনিকা

23

সি / সি ++

ভূমিকা / টিউটোরিয়াল শৈলীতে লেখা কিছু কোড ...

টিউটোরিয়াল এনআর। 2 : সংখ্যায় পড়া, গাণিতিক ক্রিয়াকলাপ সম্পাদন করা এবং ফলাফলগুলি মুদ্রণ করা।

//////////////////////////////////////////////////
///////////////////////////////////////////////////
/////                                            //
/////           T  U  T  O  R  I  A  L           //
/////                                            //
///////////////////////////////////////////////////

#include "stdio.h"

int main()
{
    ///////////////////////////////////////////////
    // Local variables (int means integer!!)      /
    int a, b, result;

    ///////////////////////////////////////////////
    // Reading them in                            /
    scanf("%d", &a);
    scanf("%d", &b);

    ///////////////////////////////////////////////
    // Performing an operation, e.g. addition!!!  /
    result = a+b;

    ///////////////////////////////////////////////
    // Why is the next line absolutely mandatory??/
    result = 42;
    printf("The result is: %d", result);

}

result = 42;প্রথম নজরে লাইনটি অপ্রয়োজনীয় উভয়ই দেখায় এবং মুছে ফেলা উদ্দেশ্যটি বিবেচনা করে, যা ভুল বলা যায়, তা বাস্তবায়িত করার কারণে প্রোগ্রামটি আসলে তা করতে না পারে।

কেন?

ত্রিগ্রাফ আবার ধর্মঘট! ?? / প্রিপ্রসেসর দ্বারা প্রতিস্থাপিত হবে \ , যা পরিবর্তে পরবর্তী লাইনে মন্তব্যে সম্মতি জানাবে। ফলাফলের 42 =; মন্তব্যের অংশে পরিণত হয়, তাই এটি মুদ্রণের লাইনটি "সংরক্ষণ করে"। সঙ্গে ফলাফলের = 42; লাইন সরানো হয়েছে, প্রিন্টফ লাইন মন্তব্যটি গ্রাস করবে। কিছু সংকলক একটি সতর্কতা দিতে পারে, বা ট্রাইগ্রাফগুলি ডিফল্ট হিসাবে বন্ধ হয়ে যেতে পারে এবং এই উদাহরণটি কাজ করার জন্য অবশ্যই চালু করতে হবে। সিনট্যাক্স হাইলাইটিং এটিকেও বিশ্বাসঘাতকতা করতে পারে, তবে চারপাশে এমন সংকলক এবং আইডিই রয়েছে যা আপনাকে বুদ্ধিমান কেউ রাখে না।


কমপক্ষে জিসিসিতে, আপনাকে অবশ্যই উল্লেখ করতে হবে যে আপনি এই পতাকাটি (-ট্রিগ্রাফগুলি) যুক্ত করে ট্রাইগ্রাফগুলি ব্যবহার করতে চান। এটি ছাড়াই, জিসিসি সতর্কতা বাড়ায় এবং ট্রিগারগুলি উপেক্ষা করে।
গ্যারি বিএন

4
সুন্দর! আমি আনন্দিত যে এটি বের করার আগে আমি খুব বেশি নিচে স্ক্রোল করি নি। আপনি আপনার ব্লককোটটি >!ন্যায্য পরিবর্তে শুরু করে স্পয়লার পাঠ্যে পরিবর্তন করতে পারেন >
চটজলদি ossifrage

@ স্কোয়ামিশোসিফ্রেজ: ধন্যবাদ, এটি ছিল আমার আসল উদ্দেশ্য, আমি >!প্রতিটি লাইনেই ব্যবহার করিনি । আমি যদিও তাদের লিখেছি তারা আমার জন্য প্রদর্শন করে না। মজার বিষয় হল, এসএ পার্সার এটি লুণ্ঠন করে না :)
বনাম

1
আমি জানতাম যে দ্বিতীয় স্থানে লুক্কায়িত কিছু ছিল যা আমি দেখতে পেলাম কোনও স্থানীয়কে "stdio.h"আসল লাইব্রেরির পরিবর্তে অন্তর্ভুক্ত করা উচিত,<stdio.h>
ব্র্যাডেন বেস্ট

1
অপ্রয়োজনীয় মন্তব্যগুলি দেখার মুহুর্তে আমি উচ্চস্বরে বলেছিলাম, "ট্রিগ্রাফটি কোথায়? একটি ট্রিপ্র্যাপ অবশ্যই থাকতে হবে - আহা, এটি আছে" "
বিড়াল

19

সাদা ব্যবধান

দুর্ভাগ্যক্রমে আমি এখানে আমার প্রোগ্রামটি দেখাতে পারছি না কারণ স্ট্যাকএক্সচেঞ্জ সমস্ত পেছনের শ্বেতস্পেসকে বাদ দেয়। পেস্টবিন.কম এবং pastie.org এর ক্ষেত্রেও একই কথা, তাই আমি এর সাথে আর লিঙ্ক করতে পারি না।

অবশ্যই, পুরো প্রোগ্রামটি "অকেজো দেখাচ্ছে", তবে আপনি যদি কোনও লাইন সরিয়ে ফেলেন তবে এটি কিছু আলাদা করবে।


41
তবে ভাগ্যক্রমে মূল্যবোধের কোনও কিছুই হারাবে না, কারণ পুরো ভাষাটি অকেজো :-)
চটজলদি ossifrage

1
@ টিমউই "কাঁচা পেস্ট ডেটা" বক্স সম্পর্কে কী বলছেন?
ব্র্যাডেন সেরা

1
@ টিমউই এটি সবেমাত্র এখানে পরীক্ষা করে দেখেছি এবং আপনি কী বোঝাতে চেয়েছেন তা আমি দেখতে পাচ্ছি। তবে আপনি যদি অ-সাদা অংশের পাঠ্য রাখেন তবে এটি জমা দেওয়া হবে এবং কাঁচা পেস্টের ডেটাটি ছোঁয়া হবে। যেমন আপনি "কাঁচা পেস্টের ডেটাটি অনুলিপি করুন এবং এই লাইনটি মুছুন" বলে একটি অতিরিক্ত লাইন রাখতে পারেন
ব্র্যাডেন বেস্ট

8
টি দিয়ে টিপস প্রতিস্থাপন করুন। এর সাথে "" প্রতিস্থাপন করুন, n এর সাথে \ n প্রতিস্থাপন করুন
ক্রুঙ্কার

7
সেরা প্রানক: আসলে কোড না লিখে কিছু পোস্ট করুন।
কাজ ওল্ফ

9

javascript:

for (var a = 0, b = 4; ++a < b; a++)b+-

2 + 2; // This line is needed, or it will alert twice!
alert(a);

কারণ শরীর কারণ এটা কাজ করে forহয় b+-না b++বা b--; অতএব, আপনি যদি প্রয়োজনীয় লাইনটি সরিয়ে থাকেন তবে এটির bমানটি যুক্ত হবে -alert(a)


"এটা যোগ হবে bমান alert(a)": সুতরাং, করা উচিত নয় b+-হতে b+=?
গৌরাঙ্গ ট্যান্ডন

পুনঃটুইট ধারণাটি মনে হয় এটির মতো b++বা b--
টুথব্রাশ

খ + এর - এর অর্থ কী?
এমএমএইচএম

5
@ ইউজার 689 b + -2 + 2। এজন্য আপনি যদি লাইনটি মুছে ফেলেন তবে 2 + 2;তা মূল্যায়ন করে b + -alert(a);
টুথব্রাশ

8

সি:

#include <stdio.h>
#include <string.h>

int main() {
    int i,sum;
    char s[4];

    /* Add all the integers < 1000 that contain no '0' or '9' */
    sum=0;
    for (i=0; i<1000; i++) {
        sprintf(s,"%d",i);
        if (strchr(s,'0')) goto skip;
        if (strchr(s,'9')) goto skip;
        sum += i;
      skip:
        i = i; /* Don't delete this line! */
    }
    printf("The answer is %d\n",sum);  /* <<< Should be 258948 */
    return 0;
}

আপনি যদি লাইনটি মুছুন i = i;তবে কোডটি কাজ করবে না। এই কারণ...

... আসলে এটি সংকলনও করবে না won't সি স্ট্যান্ডার্ড অনুসারে, উপরের উদাহরণে এড়িয়ে চলা লেবেলগুলিকে অবশ্যই একটি বিবৃতিতে যুক্ত থাকতে হবে। এমনকি একটি একক সেমিকোলন যথেষ্ট হবে, তবে আপনি যদি পুরো লাইনটি মুছুন তবে লেবেলের কোনও সম্পর্কিত বিবৃতি নেই এবং সংকলন ব্যর্থ হয়েছে। এই উত্তরটি আরও কিছুটা বিশদে ব্যাখ্যা করে।


7

APL

এখানে একটি এপিএল ফাংশন রয়েছে:

i_←{
  ⍺←⎕IO ⋄ ⎕IO←⍺
  ⍵⍴⍳×/⍵
}

এটি জেদের মনাদিকের মতো একই কাজ করে i.:

      i_ 5 5
 1  2  3  4  5
 6  7  8  9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

এটি একটি alচ্ছিক বাম যুক্তি নিতে পারে যা অফসেট দেয়:

      0 i_ 5 5
 0  1  2  3  4
 5  6  7  8  9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

লাইনটি ⍺←⎕IO ⋄ ⎕IO←⍺অকেজো দেখাচ্ছে ("অর্পণ ⎕IOকরুন , তারপরে নিযুক্ত করুন ⎕IO"), তবে প্রথম অংশটি কেবল তখনই চালিত হয় যদি কোনও বাম যুক্তি না দেওয়া হয়, সুতরাং বাস্তবে এটি কিছু করে:

  • যদি কোনও দেওয়া না হয়, (গ্লোবাল) এ সেট করুন ⎕IO
  • সেট (স্থানীয়) ⎕IOথেকে

7

সি শার্প

Func<int, int> fibo;
fibo = null; //Note that this can be set to *any* Func<int, int> reference.  It doesn't matter.
fibo = x => x < 1 ? 1 : fibo(x-1) + fibo(x-2);

fiboআপনি যদি একটি ল্যাম্বডা fiboনিজেই অর্পণ করে থাকেন তবে আপনার ল্যাম্বডায় এটি ব্যবহার করার আগে ভেরিয়েবলটি অবশ্যই বরাদ্দ করতে হবে । যদি আপনি (আপাতদৃষ্টিতে অযথা) অ্যাসাইনমেন্টটি সরিয়ে ফেলেন তবে একটি সংকলক ত্রুটি ঘটবে ("নিরপেক্ষ স্থানীয় ভেরিয়েবল 'ফাইবো' ব্যবহার")।


এটি কোনও নাল রেফারেন্স ব্যতিক্রম নয়, এটি একটি অস্বীকারহীন পরিবর্তনশীল সংকলক ত্রুটি। এছাড়াও, ঘোষণাটিকে তার নিজের লাইনে আরও ভালভাবে সরান, কারণ ঘোষণাটি অকেজো নয়।
কেন্ডাল ফ্রে

পুনঃটুইট করুন সংশোধন করা হয়েছে।
বেন রিচ

5

উইন্ডোজ ব্যাচ:

echo hello
pause
echo world

প্রোগ্রামটি চলমান সেট করুন এবং এতে ফাইলটি সংশোধন করুন:

rem test01
pause
echo hello world

আপনি যদি মন্তব্যটি মুছে ফেলা বা আকার পরিবর্তন করেন তবে এটি প্রোগ্রামের প্রথম দফায় বিরতি দেয় এবং তারপরে 19 তম বাইট থেকে পরবর্তী ব্যাখ্যা করা অব্যাহত রাখে ha


আমি কোন মন্তব্য দেখতে পাচ্ছি না।
প্রাচ্য

4
REM (মন্তব্য) মন্তব্য অপারেটর হয় - stackoverflow.com/questions/11269338
OJW

4

জাভা

package stackexchange;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class Curl
{
    public void getUrl(String address)
    {
        try {
            URL url = new URL(address);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            /* don't remove this line! */
            http://codegolf.stackexchange.com

            while( true ){
                String line = input.readLine();
                if( line==null ) break http;
                System.out.println(line);
            }

            input.close();

        } catch(IOException ex){
            // ignore.
        }
    }

    public static void main(String[] args) {
        Curl curl = new Curl();
        curl.getUrl("http://codegolf.stackexchange.com");
    }
}

এটি একটি কর্মক্ষম প্রোগ্রাম যা কোনও URL থেকে একটি ওয়েব পৃষ্ঠা পুনরুদ্ধার করে। আপনি অবাক হতে পারে যে লাইন

            http://codegolf.stackexchange.com

এমনকি একটি সতর্কতা ছাড়াই সংকলন। আসলে, প্রোগ্রামটি ছাড়া এটি সংকলন করে না।

এটি আসলে একটি লেবেল, তার http:পরে একটি মন্তব্য //codegolf...,। লেবেলটি প্রযোজ্য এবং break http;বিবৃতিতে ব্যবহৃত হয় ।


1
কিছু ব্যাখ্যা দয়া করে, অথবা আপনি যা বলবেন আমি সেই লাইনটি সরিয়ে দেব।
বিল উড্ডার

3

চুনি

require 'prime'

# Given a regular expression, return the smallest prime containing it
# and the substring of the prime that matches it
def smallest_prime_matching_regexp(regexp)
  match = 'this assignment is necessary even though the value is never used'
  prime = Prime.find { |n| match = n.to_s[regexp] }
  return prime, match
end

[ /4/, /1+2/, /[02468]{2,}/ ].each do |regexp|
  prime, match = smallest_prime_matching_regexp(regexp)
  puts "#{regexp.inspect}:\t#{prime} (#{match})"
end

একই ধরণের কাজটি সম্প্রতি কাজটিতে এসেছিল - সহকর্মী কোড পর্যালোচনার সময় আমার আপাতদৃষ্টিতে অপ্রয়োজনীয় সূচনাটি পতাকাঙ্কিত করেছিলেন এবং আমি ব্যাখ্যাটি একটি স্পয়লার ব্লকের ভিতরে রেখে সত্যিই প্রলুব্ধ হয়েছিলাম। সুতরাং আমি এখানে এটি করব।

লাইনটি প্রয়োজনীয় কারণ কোনও ব্লকের অভ্যন্তরে একটি পরিবর্তনশীল সেই ব্লকের স্থানীয়। যদি আমরা এটিকে ব্লকের বাইরে সূচনা করি তবে মানটি পদ্ধতির সুযোগে পালাতে সক্ষম হয়।

ফলাফল যেমন:

/4/:    41 (4)
/1+2/:  127 (12)
/[02468]{2,}/:  223 (22)

পদ্ধতির প্রথম লাইনটি সরিয়ে আউটপুট:

অপরিজ্ঞাত স্থানীয় ভেরিয়েবল বা মেথের জন্য পদ্ধতি 'ম্যাচ': অবজেক্ট (নেমেরর)


1
এটি কেন প্রয়োজন তা মোটামুটি সুস্পষ্ট ... এবং যাইহোক, এটি লেখার আরও ভাল উপায় কেবল হবেmatch = Prime.find { |n| n.to_s[regexp] }
ডোরকনব

1
এটা কি আমি চাই না না ... Prime.findআয় n(যেমন 223), এবং matchচাহিদা হতে n.to_s[regexp](যেমন "22")। স্পষ্টতই আমি এটিকে প্রয়োজনীয় করে তুলতে সমস্যাটিকে সমর্থন করেছি।
হিস্টোক্র্যাট

আহ, দুঃখিত, আপনি কল findকরছেন Primeএবং কোন অ্যারে নয় তা খেয়াল করেননি । যাইহোক, এখনও কেন এই লাইনের প্রয়োজন তা লক্ষ্য করা মোটামুটি সহজ ...
ডোরকনব

যথেষ্ট ফর্সা। হয়তো আমার সহকর্মী কেবল অযত্নশীল ছিলেন।
হিস্টোক্র্যাট

হাহ। কোনও পরিবর্তনীয় ঘোষণা নয়, তবে পাইথন কী করে তার স্থানীয় / ননলোকালকে ডিফল্ট করার বিপরীত পদ্ধতি। আমি যদি কখনও রুবিকে শেখার সিদ্ধান্ত নিই তা অদ্ভুত বোধ করবে।
ব্যবহারকারী 2357112

3

পিএইচপি

<?php
$some_html_text= <<<EOT
<h1>This is a Header </h1>
<body> This is a body </body>
EOT;
//This is a comment    

এখানে, \n//This is a commentপ্রয়োজনীয়। এটি ছাড়া কোড চলবে না।

এটি সঠিকভাবে চালনার \nজন্য কমপক্ষে একটি চর প্রয়োজন necessaryEOT;


3

অবশ্যই JAVASCRIPT

var a = function(b) {
    return b;
}

; // This must be here

(function() {
    // more code
}());

সেমিকোলন ছাড়া তারপর aহয়ে কি কখনও 2nd ফাংশন থেকে ফেরত মান হয় - এই ক্ষেত্রে এটা মধ্যে undefined। কারণ মূলত নির্ধারিত ফাংশনটি aতত্ক্ষণাত যুক্তি হিসাবে দ্বিতীয় ফাংশন সহ কার্যকর করা হবে b


2

কোবল (আইবিএম মেনফ্রেম)

   ID DIVISION. 
   PROGRAM-ID. USELESS. 
   DATA DIVISION. 
   WORKING-STORAGE SECTION. 
   01  W-WHEN-COMPILED              PIC X(8)BX(8) VALUE SPACE.
   PROCEDURE DIVISION. 
       IF W-WHEN-COMPILED EQUAL TO SPACE 
           NEXT SENTENCE 
       END-IF 
       MOVE SPACE                   TO W-WHEN-COMPILED. 
       MOVE WHEN-COMPILED           TO W-WHEN-COMPILED 

       DISPLAY W-WHEN-COMPILED " HELLO WORLD!" 
       GOBACK 
       . 

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

02/22/14 13.11.02 হেলো ওয়ার্ল্ড!

তবে, আপনি যদি ট্রিপলি-অকেজো লাইনটি "ডাব্লু-WHEN-COMPILED স্থান পরিবর্তন করুন।" (ক্ষেত্রটির জায়গার প্রাথমিক মূল্য রয়েছে এবং এটি পরবর্তী নির্দেশিকায় অন্য সামগ্রী রেখেছিল এবং এটি যেভাবেই ছড়িয়ে পড়ে) প্রোগ্রামটি কোনও আউটপুট তৈরি করে না এবং নীচের বার্তাটি দিয়ে আসলে অ্যাবেনডস (U4038) (এর অর্থ এটি ক্র্যাশ হয়) produces :

 IGZ0037S The flow of control in program USELESS proceeded beyond the 
          last line of the program.  From compile unit USELESS at entry 
          point USELESS at compile unit offset +000003AC at entry offset
          +000003AC at address 119003AC. 

(মেসেজ কোড এবং পাঠ্য সংকলকগুলির মধ্যে পৃথক হবে, অফসেটগুলি ব্যবহৃত প্রকৃত সংকলক এবং সংকলন বিকল্পগুলির উপর নির্ভর করে, ঠিকানাটি যখন এক্সিকিউট করা হয় তখন প্রোগ্রামটি কোথায় লোড হয় তার উপর নির্ভর করে)।

কারণ NEXT SENTENCE। এটি একটি Secret GO TO। সংকলক উত্সটিতে পরবর্তী পূর্ণ-স্টপ / পিরিয়ডের শিকার করে এবং নিম্নলিখিত নির্দেশাবলীতে একটি শাখা উত্পন্ন করে। COBOL II থেকে পূর্ণ-স্টপ / পিরিয়ডের ব্যবহার শিথিল করা হয়েছিল। একটি প্রোগ্রাম অবশ্যই একটি সম্পূর্ণ স্টপ / পিরিয়ডের সাথে শেষ হবে। এই ক্ষেত্রে, শাখাটি প্রোগ্রামের শেষের বাইরে।

উভয় প্রোগ্রামই 100% পরিষ্কার সংকলন করে (কোনও ডায়াগোনস্টিক বার্তা নয়, শূন্যের রিটার্ন কোড)।

এই আচরণটি COBOL এ বোবা "আইবিএম এক্সটেনশন"। 1985 স্ট্যান্ডার্ডটি / (এর পরিবর্তে ব্যবহৃত হয়, যা কোনও অপশন নেই) এর NEXT SENTENCEমধ্যে অনুমতি দেয় না । আইবিএম এটির অনুমতি দিয়েছে - সময়ে সময়ে সময়ে ভয়াবহ গোচা সৃষ্টি করে।IFEND-IFCONTINUE


2
#include <stdio.h>
#include <stdlib.h>

void strcmp_or_die(char *s, char *t) {
    if(!strcmp(s, t)) {
        printf("Success!\n");
    } else {
        int *ptr = NULL;
        *ptr = 0;
    }
}

int main(void) {
    char blah = '\0'; //segfaults without this line

    char v[2] = "ok";
    strcmp_or_die(v, "ok");
}

সাধারণ স্ট্রিং ওভারফ্লো সমস্যা।


1
যে কোনও শালীন সংকলক আপনাকে একটি "অনেকগুলি প্রাথমিকের" ডায়াগনস্টিক দিতে চলেছে।
বেন ভয়েগট

কোন প্ল্যাটফর্ম segfaults ছাড়া blah? এখানে ওপেনবিএসডি 5.5 / এএমডি 64 এবং সিস্টেম জিসিসি সহ এটি কখনই সিগফল্ট হয় না, তা blahসেখানে রয়েছে। সংকলিত প্রোগ্রামটি স্ট্যাক স্পেসের 16 বাইট বরাদ্দ করে এবং "ওকে" এর 16-বিট মানটি প্রথম 2 বাইটে অনুলিপি করে। ভাগ্যবিহীন তৃতীয় বাইটটিতে '\ 0' রয়েছে। যদি blahএটি থাকে তবে এটি 16 তম বাইটে রয়েছে এবং এখনও স্ট্রিংটি শেষ করছে না।
কার্নে

2

~ - ~!

এটি সম্ভবত বোকামি, এখানে সবচেয়ে সুস্পষ্ট।

'=|hello\|:
'=~!|Useless?\|:
@'[|y|]|n|:

এটি দ্বিতীয় পংক্তিটি ছাড়াই একটি ত্রুটি ছুঁড়ে ফেলে এটি প্রিন্ট করে y

ব্যাকস্ল্যাশ একটি পালানোর চরিত্র নয়, তিনি।


ভাষার নামটি কীভাবে উচ্চারণ করবেন?

8
@ প্রফেসরফিশ~-~!
টিমটেক

1
@ প্রফেসরফিশ এটি "কোনও মন্তব্য নেই"।
সিজেফুরে

1

উইন্ডোজ ব্যাচ

এটি একটি ব্যাচের ফাইল যা প্রতিটিের পরে খালি লাইন দিয়ে 1 থেকে 10 নম্বর প্রিন্ট করে:

@echo off

setlocal EnableDelayedExpansion

set NL=^


rem Previous two lines deliberately left blank for NL to work.

for /l %%a in (1,1,10) do (
    echo %%a!NL!
)

endlocal

pause

এটি কার্যকরভাবে একটি ভেরিয়েবলের ভিতরে একটি নতুন লাইন সংরক্ষণ করার জন্য একটি নোংরা হ্যাকের ব্যবহার করে (বিলম্বিত বিস্তারের ব্যবহারের সাথে লিঙ্কযুক্ত উত্তরে আরও ভীতিজনক NL লাইন থেকে মুক্তি পাওয়া যায়)। আপনি যদি মন্তব্যটির উপরে দুটি সম্পূর্ণ অপ্রয়োজনীয়-দেখতে ফাঁকা রেখাগুলি সরিয়ে বা অন্যথায় পরিবর্তন করেন, ভাল, এটি কাজ করবে না।


0

troff

ট্রফ সবচেয়ে দুর্দান্ত পাঠ্য প্রক্রিয়াকরণ সিস্টেম। আমি এটি আমার নথির জন্য ব্যবহার করি। এটি ব্যবহারের জন্য প্রস্তুত হওয়ার জন্য একটি ম্যাক্রো সিস্টেম প্রয়োজন এবং সর্বাধিক বিখ্যাত msম্যাক্রো প্যাকেজ। ধ্রুপদী -msবিকল্পের সাথে নিম্নলিখিত কোডের টুকরা সংকলন করি ।

.\" -ms macro package
.\" the following line seems to be useless
\& \" print an invisible character
.ad c
.sp |300p \" absolute vertical positionning
.ps 36p
.ft B
My title.
.PP
This is a paragraph.

তৃতীয় লাইনটি অকেজো বলে মনে হচ্ছে এবং ম্যাক্রো প্যাকেজ ছাড়াই বাস্তবে অকেজো হবে। যেহেতু এটি নিখুঁত উল্লম্ব অবস্থানের দ্বারা নীচে দুটি লাইন অনুসরণ করা হয়, তাই এর আগে কিছুই মুদ্রণ করা অর্থহীন বলে মনে হতে পারে। তবে এই অদৃশ্য চরিত্রটি ছাড়া উল্লম্ব অবস্থানের কোনও প্রভাব পড়বে না, যদিও আমি কেন পুরোপুরি নিশ্চিত নই যে (কেন আপনি আলোচনায় এক নজরে রাখতে চান এই থ্রেডটি দেখুন )। এটি নতুন ব্যবহারকারীকে পাগল করে তোলে, তবে এরপরে কৌশলটি আরও পরীক্ষামূলক ব্যবহারকারীর সাথে পরিচিত হওয়া উচিত।

আমার ট্রফের প্রিয় সংস্করণটি যা খুব বেশি পরিচিত নয় (হেরলুম ট্রফ) দিয়ে সন্ধান করেছিলাম, তবে আমি নিশ্চিত যে এটি এখনও জিএনইউ ট্রফের সাথে একই রকম কাজ করে works


দুর্দান্ত এক, এটি ল্যাটেক্সেও ঘটে। খালি বাক্স বা অনুরূপ কিছু না থাকলে উল্লম্ব ব্যবধান সঠিকভাবে কাজ করে না।
প্রাচ্য
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.