/ / सक्रिय स्थिति को वर्तमान लाइन पर अगली टैब स्थिति में ले जाएँ - c

सक्रिय स्थिति को वर्तमान पंक्ति पर अगले टैब स्थिति में ले जाएं-c

सी मानक (5.2.2 कैरेक्टर डिस्प्ले सेमेन्टिक्स) से:

t (क्षैतिज टैब) सक्रिय स्थिति को अगले क्षैतिज पर ले जाता है वर्तमान लाइन पर सारणीकरण स्थिति। यदि सक्रिय स्थिति पर है या अंतिम परिभाषित क्षैतिज सारणीकरण स्थिति से पहले, व्यवहार डिस्प्ले डिवाइस का विवरण निर्दिष्ट नहीं है।

क्या कोई मुझे ऐसा मामला दे सकता है जहां यह लागू हो?

उत्तर:

जवाब के लिए 2 № 1

मान लें, आपके टेक्स्ट कंसोल की चौड़ाई 80 वर्ण है औरसारणीकरण की स्थिति 0,8,16,....72 है। मानक के अनुसार, आप जानते हैं कि यदि आप कंसोल पर एक सारणीकरण वर्ण भेजते (प्रिंट) करते हैं, तो आपका कर्सर 8वें स्थान पर चला जाता है। दो हो तो 16वें स्थान पर.... नौ हो तो 72वें स्थान पर। लेकिन यदि आप अधिक सारणी भेजते हैं, तो यह निर्दिष्ट नहीं है कि आपका कर्सर कहाँ रखा जाना चाहिए। उदाहरण के लिए, मेरे वर्तमान कंसोल पर इसे उस स्थिति में सबसे दाईं (79) स्थिति में रखा गया है, लेकिन किसी भी तरह से हमें इस धारणा पर भरोसा नहीं करना चाहिए। .


जवाब के लिए 0 № 2

टैब के बारे में

अधिकांश टर्मिनल प्रोग्रामों में प्रत्येक 8वें कॉलम पर एक टैब स्टॉप होगा।

  • आपके द्वारा प्रिंट किए जाने वाले प्रत्येक "t" के लिए कर्सर अगली संभावित स्थिति में चला जाता है ( आमतौर पर 8 रिक्त स्थान )।
  • यदि आपके कंसोल में N सारणीकरण वर्णों के लिए जगह है तो आप 0 से N "t" तक सुरक्षित रूप से प्रिंट कर सकते हैं।
  • मान लें कि मेरे छोटे कंसोल में केवल 4 टैब के लिए जगह है और (एक नई लाइन के बाद) मेरे पास नीचे दिया गया कोड है

    printf ( "ttttt" );  // As you can see...
    //...here I want to put 5 tabulation tabs on screen
    

    इस मामले में हम नहीं जानते कि अंतिम टी कैसे मुद्रित किया जाएगा।

    नोट: कभी-कभी, यदि आप इस तरह से कई t प्रिंट करते हैं; printf("ttt...tt); कर्सर पिछली पंक्तियों में जाता है, लेकिन हम यह सुनिश्चित नहीं कर सकते कि ऐसा होगा या नहीं।