प्रोग्राम में एक पंक्ति लिखें जो बेकार दिखती है [बंद]


26

कुछ प्रोग्राम लिखें (आकार कोई फर्क नहीं पड़ता), और एक लाइन डालें जो बेकार दिखती है, लेकिन यह वास्तव में नहीं है - अगर इसे हटा दिया जाएगा, तो प्रोग्राम क्रैश हो जाएगा, या कुछ गलत करेगा। किसी टिप्पणी द्वारा अप्रयुक्त दिखने वाली रेखा को चिह्नित करने के लिए स्वतंत्र महसूस करें, या अपने कोड विवरण का उल्लेख करें, जैसे नीचे उदाहरण में (निश्चित रूप से, इस उदाहरण में, लाइन वास्तव में आवश्यक नहीं है, यह सिर्फ एक उदाहरण है)।

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

    return 0;
}

जैसा कि यह लोकप्रियता प्रतियोगिता है, सबसे अधिक वोटों के साथ समाधान जीतता है।


2
उदाहरण में पंक्ति क्यों आवश्यक है?
गारी बीएन

3
@GariBN यह नहीं है: "इस उदाहरण में, लाइन वास्तव में जरूरत नहीं है, यह सिर्फ एक उदाहरण है।"
एलिक्सेनाइड 15

9
@EdCottrell जानकर अच्छा लगा ... मुझे लगा कि मुझे कुछ बुनियादी चीज़ याद आ गई है ...
Gari BN

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

C / C ++

बस परिचय / ट्यूटोरियल की शैली में लिखे गए कुछ कोड ...

ट्यूटोरियल एनआर। 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; लाइन हटा दी गई, प्रिंटफ लाइन टिप्पणी द्वारा निगल ली जाएगी। कुछ संकलक एक चेतावनी दे सकते हैं, या ट्रिग्राफ को डिफ़ॉल्ट के रूप में बंद किया जा सकता है और काम करने के लिए इस उदाहरण के लिए चालू होना चाहिए। सिंटैक्स हाइलाइटिंग भी इसे धोखा दे सकती है, लेकिन ऐसे कंपाइलर और आईडीई हैं जिनके चारों ओर आपको कोई नहीं छोड़ता है।


कम से कम gcc में, आपको यह निर्दिष्ट करना होगा कि आप इस ध्वज (-trigraphs) को जोड़कर ट्रिग्राफ का उपयोग करना चाहते हैं। इसके बिना, जीसीसी चेतावनी को बढ़ाता है और ट्रिग्राफ को अनदेखा करता है।
गारी बीएन

4
अच्छा है! मुझे खुशी है कि मैंने इसे लगाने से पहले बहुत नीचे स्क्रॉल नहीं किया। आप अपने ब्लॉकक्वाओट को स्पॉइलर टेक्स्ट में बदल सकते हैं >!, बस इसके बजाय इसे शुरू करके >
स्क्विश ओश्रीफ्रेज

@squeamishossifrage: धन्यवाद, यह मेरा मूल इरादा था, मैं >!हर पंक्ति में नहीं था। हालांकि मैंने उन्हें मेरे लिए प्रदर्शित नहीं किया क्योंकि मैंने उन्हें लिखा था। दिलचस्प है, एसई पार्सर इसे खराब नहीं करता है :)
vsz

1
मुझे पता था कि कुछ डरपोक था दूसरा मैंने देखा "stdio.h"कि वास्तविक पुस्तकालय में एक स्थानीय व्यक्ति शामिल है,<stdio.h>
ब्रैडेन बेस्ट

1
जिस क्षण मैंने सतही टिप्पणियां देखीं, मैंने कहा, "कहाँ ट्रिग्राफ है? एक ट्रिग्रेप होना चाहिए- आह, वहाँ यह है।"
बिल्ली

19

श्वेत रिक्ति

दुर्भाग्य से मैं अपना कार्यक्रम यहाँ नहीं दिखा सकता क्योंकि StackExchange सभी अनुगामी व्हॉट्सएप स्ट्रिप्स। वही pastebin.com और pastie.org का सच है, इसलिए मैं इससे लिंक नहीं कर सकता।

बेशक, पूरा कार्यक्रम "बेकार लग रहा है", लेकिन अगर आप किसी भी लाइन को हटाते हैं, तो यह कुछ अलग करेगा।


41
लेकिन सौभाग्य से मूल्य का कुछ भी खो नहीं जाएगा, क्योंकि पूरी भाषा बेकार है :-)
स्क्वीश ossifrage

1
@ टिमवी "कच्चे पेस्ट डेटा" बॉक्स के बारे में क्या?
ब्रैडेन बेस्ट

1
@ टिमिवी मैंने इसे यहां परीक्षण किया है , और मैं देख रहा हूं कि आपका क्या मतलब है। लेकिन अगर आप गैर-व्हाट्सएप टेक्स्ट डालते हैं, तो यह सबमिट हो जाएगा, और कच्चा पेस्ट डेटा अछूता हो जाएगा। उदाहरण के लिए, आप यह कहते हुए एक अतिरिक्त लाइन डाल सकते हैं कि "कच्चे पेस्ट डेटा को कॉपी करें और इस लाइन को हटा दें"
ब्रैडेन बेस्ट

8
t के साथ \ t बदलें। प्रतिस्थापित करें "" s के साथ, \ n को n
क्रंचर

7
सर्वश्रेष्ठ शरारत कभी: वास्तव में कोड लिखने के बिना कुछ पोस्ट करें।
कज़ वोल्फ

9

जावास्क्रिप्ट:

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--
टूथब्रश

b + - वास्तविक मतलब क्या है?
Mhmd

5
@ user689 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;तो कोड काम नहीं करेगा। यह है क्योंकि...

... वास्तव में यह संकलन भी नहीं होगा। सी मानक के अनुसार, उपरोक्त उदाहरण में स्किप जैसे लेबल एक बयान के साथ जुड़े होने चाहिए । यहां तक ​​कि एक भी अर्धविराम पर्याप्त होगा, लेकिन यदि आप पूरी पंक्ति को हटाते हैं तो लेबल में कोई संबद्ध कथन नहीं है और संकलन विफल रहता है। यह उत्तर थोड़ा और विस्तार से बताता है।


7

एपीएल

यहाँ एक एपीएल फ़ंक्शन है:

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

यह एक वैकल्पिक बाएं तर्क ले सकता है जो ऑफसेट देता है:

      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खुद को सौंप रहे हों । यदि आप (प्रतीत होता है बेकार) असाइनमेंट को हटाते हैं, तो एक संकलक त्रुटि उत्पन्न होगी ("बिना उपयोग किए गए स्थानीय चर 'फ़ाइबो' का उपयोग")।


यह एक शून्य संदर्भ अपवाद नहीं है, यह एक असंक्रमित वैरिएबल कंपाइलर त्रुटि है। इसके अलावा, घोषणा को बेहतर ढंग से अपनी पंक्ति में ले जाएं, क्योंकि घोषणा बेकार नहीं है।
केंडल फ्रे

@KendallFrey अच्छी बात! फिक्स्ड।
बेन रीच

5

विंडोज बैच:

echo hello
pause
echo world

चल रहे प्रोग्राम को सेट करें और फ़ाइल को इसमें संशोधित करें:

rem test01
pause
echo hello world

यदि आप टिप्पणी को हटाते हैं या उसका आकार बदलते हैं, तो यह कार्यक्रम के पहले उदाहरण के रूप में तबाही मचाएगा और फिर 19 वें बाइट की व्याख्या जारी रखेगा।


मुझे कोई टिप्पणी नहीं दिख रही है।
ओरियन

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)

निकाली गई विधि की पहली पंक्ति के साथ आउटपुट:

मुख्य के लिए अपरिभाषित स्थानीय चर या विधि `मैच’: ऑब्जेक्ट (NameError)


1
यह काफी स्पष्ट है क्यों कि आवश्यक है ... और वैसे भी, एक बेहतर तरीका लिखने के लिए यह सिर्फ होगाmatch = Prime.find { |n| n.to_s[regexp] }
दरवाज़े

1
जो मैं चाहता हूँ वह नहीं करेगा ... Prime.findरिटर्न n(जैसे 223), और matchहोना चाहिए n.to_s[regexp](उदाहरण के लिए "22")। जाहिर है कि मैंने इस समस्या को आवश्यक बनाने के लिए संघर्ष किया।
हिस्टोक्रेट

आह, माफ करना, नोटिस नहीं किया था आपको बुला रहे थे findपर Primeऔर नहीं एक सरणी। वैसे भी, यह अभी भी काफी आसान ध्यान में क्यों है कि रेखा की जरूरत है है ...
दरवाज़े

काफी उचित। शायद मेरा सहकर्मी सिर्फ बेपर्दा हो रहा था।
हिस्टोक्रेट

हुह। कोई भी चर घोषणाएं नहीं है, लेकिन पायथन जो करता है, उसके लिए स्थानीय / गैर-डिफ़ॉल्ट के विपरीत दृष्टिकोण। यह अजीब लग रहा है अगर मैं कभी रूबी सीखने का फैसला करता हूं।
user2357112

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बाद कम से कम एक चार आवश्यक EOT;है


3

JAVASCRIPT

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

; // This must be here

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

अर्धविराम के बिना तो aकभी भी 2 समारोह से वापसी मूल्य क्या होगा - इस मामले में यह है undefined। क्योंकि मूल रूप से सौंपे गए aफ़ंक्शन को तर्क के रूप में दूसरे फ़ंक्शन के साथ तुरंत निष्पादित किया जाएगा b


2

COBOL (IBM मेनफ्रेम)

   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 
       . 

यदि आप उपरोक्त प्रोग्राम (किसी भी IBM मेनफ्रेम COBOL को COBOL II के बाद से चलाते हैं (पहला IBM कंपाइलर 1985 के मानक के लिए, शायद अन्य IBM COBOLs के साथ ही) आउटपुट है:

02/22/14 13.11.02 हेलो वर्ल्ड!

हालाँकि, यदि आप त्रिकोणीय-बेकार रेखा को हटाते हैं, "WOW-WHEN-COMPILED के लिए SPACE SPACE।" (फ़ील्ड में अंतरिक्ष का एक प्रारंभिक मूल्य है, और अगले निर्देश में इसमें अन्य सामग्री रखी गई है, और यह वैसे भी शाखित है) कार्यक्रम कोई आउटपुट नहीं देता है और वास्तव में निम्नलिखित संदेश के साथ Abends (U4038) (इसका मतलब है कि यह दुर्घटनाग्रस्त हो जाता है) :

 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. 

(संदेश कोड और पाठ संकलक के बीच अलग-अलग होंगे, ऑफ़सेट वास्तविक संकलक के उपयोग और संकलन के विकल्प पर निर्भर करते हैं, पता इस बात पर निर्भर करता है कि EXECuted होने पर प्रोग्राम कहाँ लोड होता है)।

कारण है 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
कोई भी सभ्य संकलक आपको "बहुत अधिक शुरुआती" डायग्नोस्टिक देने जा रहा है।
Ben Voigt

कौन सा प्लेटफ़ॉर्म बिना सेगफ़ॉल्ट के blah? यहाँ OpenBSD 5.5 / amd64 और सिस्टम gcc के साथ, यह कभी भी नहीं blahहोता है , कि वहाँ है या नहीं । संकलित कार्यक्रम स्टैक स्पेस के 16 बाइट्स आवंटित करता है और पहले 2 बाइट्स के लिए "ओके" के 16-बिट मूल्य को कॉपी करता है। निर्विवादित 3 बाइट में किस्मत से '\ 0' है। अगर blahवहाँ है, यह 16 वीं बाइट में है, और अभी भी स्ट्रिंग समाप्त नहीं कर रहा है।
kernigh

2

~ - ~!

यह शायद सबसे बेवकूफ है, यहाँ सबसे स्पष्ट है।

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

यह उस दूसरी पंक्ति के बिना एक त्रुटि फेंकता है, इसके साथ यह प्रिंट करता है y

बैकस्लैश एक भागने चरित्र नहीं है, हे।


आप भाषा के नाम का उच्चारण कैसे करते हैं?

8
@professorfish~-~!
Timtech

1
@professorfish "कोई टिप्पणी नहीं" होगा।
cjfaure

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

यह प्रभावी रूप से एक वैरिएबल को एक वैरिएबल के अंदर स्टोर करने के लिए एक गंदे हैक का उपयोग करता है (विलंबित विस्तार का उपयोग लिंक किए गए उत्तर में एनएल लाइन की तलाश में अधिक डरावना हो जाता है)। यदि आप टिप्पणी से ऊपर दो या पूरी तरह से बेकार दिखने वाली रिक्त लाइनों को हटा देते हैं या अन्यथा बदल देते हैं, तो ठीक है, यह काम नहीं करेगा।


0

ट्रोफ

ट्रॉफ सबसे अद्भुत टेक्स्ट प्रोसेसिंग सिस्टम है। मैं इसे अपने दस्तावेजों के लिए उपयोग करता हूं। इसे उपयोग करने के लिए तैयार होने के लिए एक मैक्रो सिस्टम की आवश्यकता होती है, और सबसे प्रसिद्ध 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.

तीसरी पंक्ति बेकार लगती है, और मैक्रो पैकेज के बिना वास्तव में बेकार होगी। चूंकि यह एक पूर्ण ऊर्ध्वाधर स्थिति द्वारा दो पंक्तियों के नीचे है, इसलिए यह पहले कुछ भी नहीं छापने के लिए अर्थहीन लग सकता है। लेकिन इस अदृश्य चरित्र के बिना, ऊर्ध्वाधर स्थिति का कोई प्रभाव नहीं होगा, हालांकि मुझे पूरा यकीन नहीं है कि मैं समझा सकता हूं कि (इस धागे को देखें यदि आप चर्चा पर एक नज़र रखना चाहते हैं)। यह नए उपयोगकर्ता को पागल बनाता है, लेकिन फिर चाल को अधिक प्रयोग किए जाने वाले उपयोगकर्ता के लिए परिचित होना चाहिए।

ट्रॉफ के मेरे पसंदीदा संस्करण के साथ बस की जाँच की जो बहुत ज्ञात नहीं है (हीरूम ट्रॉफ़), लेकिन मुझे पूरा यकीन है कि यह अभी भी GNU ट्रॉफ़ के साथ ही काम करता है।


एक अच्छा, यह LaTeX में भी होता है। एक खाली बॉक्स या कुछ समान के बिना, ऊर्ध्वाधर रिक्ति ठीक से काम नहीं करती है।
ओरियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.