इनपुट के लिए बेसब्री से इंतजार करें


39

आपका कार्य आज इनपुट प्राप्त करने की समय सीमा को लागू करना है, एक ऐसा कार्य जो मैंने पाया है बल्कि अधिकांश भाषाओं में प्राप्त करने के लिए कष्टप्रद है।

आप एक प्रोग्राम फ़ंक्शन बनाएंगे जो उपयोगकर्ता को इनपुट के लिए संकेत देता है। उपयोगकर्ता द्वारा इनपुट की आपूर्ति के तुरंत बाद, संदेश को प्रिंट करें input receivedऔर निष्पादन / वापसी को समाप्त करें। हालाँकि, यदि उपयोगकर्ता इनपुट प्रदान करने के लिए 10 सेकंड से अधिक समय तक प्रतीक्षा करता है, तो संदेश को आउटपुट करता है no input receivedऔर निष्पादन / वापसी करता है।

इनपुट stdin(कंसोल) या समतुल्य होना चाहिए , न कि फ़ंक्शन या प्रोग्राम आर्ग्युमेंट्स, हालाँकि आउटपुट या तो हो सकता है stdout, आपके फ़ंक्शन का रिटर्न वैल्यू, या कोई अन्य स्वीकृत आउटपुट विधि।

आप किसी भी इनपुट के लिए पूछ सकते हैं, यह एक एकल वर्ण, एक पंक्ति, एक शब्द या आपकी भाषा में जो भी विधि कम से कम एक वर्ण की प्रतीक्षा कर रही है, सबसे छोटी हो सकती है।

इनपुट प्राप्त होते ही आपको आउटपुट करना होगा, 10 सेकंड बीतने के बाद नहीं।

10 सेकंड बीत जाने के बाद, आपको समाप्त होना चाहिए , no input receivedमुद्रित होने के बाद आप इनपुट की प्रतीक्षा जारी नहीं रख सकते ।

आप मान सकते हैं कि इनपुट स्क्रीन पर प्रिंट होने के 10 सेकंड के बीच के समय में पारित नहीं हुआ है, क्योंकि यह एक बहुत छोटी खिड़की है। आप यह भी मान सकते हैं कि आपकी भाषा का बिलियन समतुल्य sleepलगातार, एकदम सही है।

यह , सबसे कम बाइट्स जीतता है!


6
केवल अपने शब्दकोश का उपयोग करने से गोल्फ भाषाओं को रोकने के लिए अच्छा स्पर्श के लिए। ओह, और बड़ी चुनौती भी।
अडंम

1
@ Adám जब तक आपकी भाषा में टाइमआउट के साथ कोई रीडिंग नहीं आती है, मुझे लगता है कि ऐसा करने का एकमात्र अच्छा तरीका OS / थ्रेड मैजिक है, जो कि ज्यादातर गोल्फिंग भाषाएँ वैसे भी नहीं कर सकती हैं।
पावेल

अब मुझे अपने कार्यक्रम को फिर से लिखना होगा। पोस्ट करने के लिए लगभग तैयार था ... ;-)
एडम

1
@ TheLethalCoder आप अपनी भाषा के sleepकार्यों के समतुल्य 100% समय मान सकते हैं ।
पावेल

1
@ लेम्बिक वहाँ तुम जाओ, एक पायथन जवाब।
पावेल

जवाबों:


24

बैश, 38 बाइट्स

read -t10||a=no;echo $a input received

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


6
यह कहना चाहिए "(नहीं) इनपुट आरईसी यानी वेद" जो महत्वपूर्ण रूप से शब्दकोशों के साथ गोल्फ भाषाओं को बाधित करता है।
शाम

8
@ Adám दरअसल यह एक टाइपो है
पावेल

7
@Phoixix Noooo!
आदम

1
क्यों a = नहीं तो $ a? क्या कोई उद्देश्य है? संपादित करें मुझे यह मिला कि मैंने प्रश्न को ठीक से नहीं पढ़ा है
फेलिक्स गुओ

12

हास्केल, 97 89 बाइट्स

import System.Timeout
timeout(10^7)getChar>>=putStr.(++"input received").maybe"no "mempty

यदि timeoutबार बाहर निकलता है Nothingऔर Just Char( Char, क्योंकि हम उपयोग कर रहे हैं getChar) अन्यथा। यह वापसी मान फ़ंक्शन द्वारा "no "या में परिवर्तित किया ""जाता है maybe "no " mempty। संलग्न करें "input received"और प्रिंट करें।

संपादित करें: @BMO ने maybeकुछ बाइट्स का सुझाव दिया और बचाया।


Ish ghci में सही ढंग से नहीं लगता है।
मेपल_शफ्ट

@maple_shaft: ghci के साथ आप के gसाथ बाँध करना है let:, let g Nothing="no ";g _=""तो फंक्शन कॉल timeout....मेरे लिए ठीक काम करता है।
नीमी

1
आप की जगह ले सकता gसे maybe"no "(pure"")जो भी कम है और तुम भी यह इनलाइन सकते हैं - आप 6 बाइट्स बचत।
ბიმო

@ बीएमओ: अच्छा! memptyइसके बजाय और (pure"")भी छोटा है।
निमि

बहुत अच्छा, यह वास्तव में चालाक है!
ბიმო

11

पोसिक्स C99, 71 63 बाइट्स

main(){puts("no input received"+3*poll((int[]){0,1},1,10000));}

Ungolfed:

#include <unistd.h>
#include <poll.h>
#include <stdio.h>
int main()
{
  struct pollfd pfd; 
  pfd.fd = STDIN_FILENO; 
  pfd.events = POLLIN;  
  puts("no input received"+3*poll(&pfd,1,10000));
}

चूंकि pollसफलता के मामले में 1 वापस आएगा, हम परिणाम को 3 से गुणा करते हैं और तदनुसार स्ट्रिंग को स्थानांतरित करते हैं। फिर, हम इस तथ्य का उपयोग करते हैं struct pollfdजिसमें निम्नलिखित लेआउट हैं:

     struct pollfd {
     int    fd;       /* file descriptor */
     short  events;   /* events to look for */
     short  revents;  /* events returned */
 };

और कहा कि STDIN_FILENOहै 0, POLLINहै 1बदलने के लिए pfdके साथ int pfd[] = {0,1}है, जो हम अंत में (के रूप में C99 द्वारा अनुमति) एक यौगिक litteral बनाते हैं।


3
आपको यह निर्दिष्ट करने की आवश्यकता है कि यह POSIX को लक्षित करता है, क्योंकि poll.hहेडर C99 भाषा मानक का हिस्सा नहीं है।
कॉडी ग्रे

8

अप्प्सस्क्रिप्ट, 113

एप्सस्क्रिप्ट वास्तव में स्टैडिन से पढ़ना नहीं है। उम्मीद है कि display dialogयहाँ स्वीकार्य है:

({"","no "}'s item((display dialog""default answer""giving up after 10)'s gave up as integer+1))&"input received"

6

APL (Dyalog) , 41 40 बाइट्स

'no input received'↓⍨{3*⍨⎕RTL10::03⊣⍞}

यह एक गुमनाम टैसिट फ़ंक्शन है जिसे चलाने के लिए एक डमी तर्क की आवश्यकता होती है

'no input received' पूर्ण स्ट्रिंग

↓⍨ संख्या के सामने से जितने अक्षर लौटे, उतने ही अक्षर छोड़ें

{ अनाम स्पष्ट कार्य ( तर्क को दर्शाता है)

⎕RTL←10 सेट आर एस्पोन टी ime एल दस सेकंड तक नकल करता है

3*⍨ उस संख्या (दस) को तीन की शक्ति तक बढ़ाएँ (एक हजार का अर्थ है "सब")

:: उन अपवादों (सभी) पर,

  0 वापसी ०

 प्रयत्न:

   इनपुट प्राप्त करें

  3⊣ कि त्यागें और बदले में 3

}फ़ंक्शन का अंत (ध्यान दें कि तर्क का कभी उल्लेख नहीं किया गया था)


6

पर्ल , 74 67 बाइट्स

$m="input received";$SIG{ALRM}=sub{die"no $m\n"};alarm 10;<>;say$m

पुराना संस्करण

$m="input received";$SIG{ALRM}=sub{die "no $m\n"};alarm 10;<stdin>;say $m;

(Perl -M5.10.1 के माध्यम से चलाएँ ...)


आउटपुट में कोई अनुगामी न्यूलाइन आवश्यक नहीं है, इसलिए आप काट सकते हैं \n
पावेल

3
PPCG में आपका स्वागत है!
पावेल

वास्तव में आप की जरूरत नहीं है -M5.10.1। आप बस के -eसाथ स्थानापन्न कर सकते हैं -E। (यदि आपको जरूरत है -M5.10.1, तो आपको अपने स्कोर में एक जुर्माना
लगाना होगा

@Phoenix, \nकी वजह से है dieके व्यवहार: "सूची के अंतिम तत्व एक नई पंक्ति में खत्म नहीं होता है, तो वर्तमान स्क्रिप्ट लाइन नंबर और इनपुट लाइन नंबर (यदि हो तो) भी मुद्रित कर रहे हैं, और एक नई पंक्ति आपूर्ति की है।" तो इसके बिना "कोई इनपुट प्राप्त नहीं होता है -e लाइन 1."। लेकिन निश्चित रूप से, यह स्ट्रिंग में एक शाब्दिक रेखा विराम हो सकता है। कि बगल में, के बीच रिक्त स्थान dieऔर sayऔर उनके मापदंडों आवश्यक नहीं हैं। फाइनल के लिए भी ;। और <>मानक इनपुट से पढ़ने के लिए पर्याप्त है।
मैनटवर्क

1
यदि आप evalSTDIN से पढ़ते हैं, तो आप एक dieसंदेश की आवश्यकता से बच सकते हैं । वास्तव में, एक रनटाइम त्रुटि बस के रूप में भी काम करती है $SIG{ALRM}=sub{&0};alarm 10;say'no 'x!eval'<>','input received':।
प्रिमो

6

पर्ल 6 ,  72  66 बाइट्स

my $s='input received';Promise.in(10).then:{say "no $s";exit};get;say $s

बिना इनपुट वाले
इसे आज़माएं इसे इनपुट के साथ आज़माएँ

my$s='input received';start {sleep 10;say "no $s";exit};get;say $s

बिना इनपुट वाले
इसे आज़माएं इसे इनपुट के साथ आज़माएँ

my $s = 'input received'; # base message

start {         # create a Promise with a code block
                # that is run in parallel
  sleep 10;     # delay for 10 seconds
  say "no $s";  # say 「no input received」
  exit          # exit from the process
}

get;            # get a line from the input
say $s          # say 「input received」

1
"मेरे निबंध को इनपुट किया गया है - 10 में वादा करें फिर 'कोई निबंध नहीं' कहें और बाहर निकलें या 'निबंध' प्राप्त करें"
बिल्ली

आप के बीच की जगह निकाल सकते हैं startऔर {?
पावेल

@Phoenix नाम के एक परिवर्तनशील चर पर सहयोगी अनुक्रमण के रूप में देखा जाएगा start, इसलिए नहीं।
ब्रैड गिल्बर्ट

आपके TIO लिंक अब काम नहीं करते।
पावेल

@ पावेल, फिक्स्ड, बस डमी टेस्ट क्लास को आईओ का एक उपप्रकार बनाना था :: हैंडल और .newउस पर कॉल करें
ब्रैड गिल्बर्ट b2gills

5

सी #, 180 171 148 131 बाइट्स

()=>{var t=new System.Threading.Thread(()=>{System.Console.ReadKey();});t.Start();return(t.Join(10000)?"":"no ")+"input recieved";}

@VisualMelon की बदौलत 17 बाइट्स बचाए।

पूर्ण / प्रारूपित संस्करण:

class P
{
    static void Main()
    {
        System.Func<string> f = () =>
        {
            var t = new System.Threading.Thread(() =>
            {
                System.Console.ReadKey();
            });
            t.Start();

            return (t.Join(10000) ? "" : "no ") + "input recieved";
        };

        System.Console.WriteLine(f());
        System.Console.ReadLine();
    }
}

namespaceएक usingनिर्देश क्यों और कैसे?
पावेल

@Phoixix को वैसे भी एक नामस्थान की आवश्यकता होगी ताकि वे सभी बाइट्स using
बचाएं

आपने एक्शन के रूप में महत्वपूर्ण भाग को क्यों बचाया और बाद में इसे निष्पादित किया? मैं वास्तव में इस प्रश्न को निर्दिष्ट नहीं देख सकता।
स्नोफायर

1
Thread.Join(int)(, से छुटकारा c, ब्रेसिज़, आदि) से वापसी मूल्य का उपयोग करके काफी बचा सकता है : var t=new System.Threading.Thread(()=>System.Console.ReadKey());t.Start();return(t.Join(10000)?"":"no ")+"input recieved";(VB.NET पहले से ही ऐसा लगता है)
VisualMelon

1
@TaylorScott मैं कर सकता हूं, 1e4लेकिन यह एक है doubleऔर मुझे इसकी आवश्यकता होगी intइसलिए मुझे ऐसा करना होगा (int)1e4:( अच्छा विचार हालांकि
TheLethalCoder

5

टीआई-बेसिक, 84 77 बाइट्स

-7 धन्यवाद @ kamoroso94 के लिए

:startTmr→T         //Start Timer, 5 bytes
:Repeat checkTmr(T)=10 or abs(int(.1K)-8)≤1 and 1≥abs(3-10fPart(.1K  //Loop until the timer is 10 seconds or a number key is pressed, 32 bytes
:getKey→K           //get key code, 4 bytes
:End                //end loop, 2 bytes
:"NO INPUT RECEIVED //Push string "NO INPUT RECEIVED" to Ans, 18 bytes
:If K               //If input was received, 3 bytes
:Disp sub(Ans,3,15  //Diplay "INPUT RECEIVED", 9 bytes
:If not(K           //If no input, 3 bytes
:Ans                //Display "NO INPUT RECEIVED", 1 byte

एक नंबर दबाने तक इंतजार करता है।

मैं यह पता लगाने की कोशिश कर रहा हूं कि अनुक्रम को कैसे गोल किया जाए {72,73,74,82,83,84,92,93,94}। यह काफी जगह ले रहा है।


यदि आप किसी भी कुंजी के लिए इंतजार करना चाहते हैं, तो Repeat K or 10=checkTmr(Tकरेंगे।
bb94

इसके अलावा, अंतिम 4 लाइनों को छोटा किया जा सकता है:4-3not(K:sub("NO INPUT RECEIVED",Ans,18-Ans
bb94

1
@ bb94 मैं वास्तव में किसी भी कुंजी के लिए इंतजार नहीं करना चाहता, क्योंकि उन सभी में वास्तव में एक चरित्र इनपुट नहीं होगा। यह Shiftकंप्यूटर पर कुंजी की प्रतीक्षा करने जैसा होगा । इसके अलावा, आपकी विधि के साथ अंतिम 4 लाइनों को छोटा करना वास्तव में मेरी जैसी ही बाइट गिनती देता है। मुझे आपका तरीका पसंद है, हालाँकि।
स्कॉट मिलनर

आप किसी भी कुंजी के लिए जाँच कर सकते हैं जो 21 या 31 नहीं है।
bb94

orअपने रिपीट स्टेटमेंट के बाद , -7 बाइट्स के लिए इसका इस्तेमाल करें:abs(int(.1K)-8)≤1 and 1≥abs(3-10fPart(.1K
kamoroso94

4

NodeJS, 105 103 101 बाइट्स

-2 @apsillers करने के लिए धन्यवाद बाइट्स
-2 को ले जाकर बाइट्स console.log()मेंexit()

with(process)stdin.on('data',r=x=>exit(console.log((x?'':'no ')+'input received'))),setTimeout(r,1e4)

किसी फ़ाइल को सहेजकर और नोड के साथ चलाकर या कमांड लाइन से सीधे चलाकर चलाएं node -e "<code>"


@ रैपिलर्स यूप, अच्छी पकड़।
जस्टिन मरीनर

@apsillers मैं फिर से संपादित करने वाला था ताकि console.log()कॉल को वास्तव में पैरामीटर के रूप में स्थानांतरित किया जा सके exit()। वह दो कम है, अब।
जस्टिन मारिनर

4

जावास्क्रिप्ट (ES6) + HTML, 86 84 82 79 + 11 = 97 95 93 90 बाइट्स

setTimeout(oninput=_=>i.remove(alert(`${i.value?"":"no "}input received`)),1e4)
<input id=i

कोशिश करो

एक बंद आवश्यक है >पर inputएक स्निपेट में काम करने के लिए।

setTimeout(oninput=_=>i.remove(alert(`${i.value?"":"no "}input received`)),1e4)
<input id=i>


1e5 100,000 या 100 सेकंड है, 1e4 10 सेकंड है
PunPun1000

ऊप्स! खैर, धन्यवाद, @ PunPun1000
झबरा

क्या 10इसके बजाय लिखना कम नहीं होगा 1e4?
संगीतज्ञ ५२३

@ musicman523, 1010 मिलीसेकंड होगा, चुनौती चुनौती विशेष रूप से 10 सेकंड कहती है , जो कि 10000 मिलीसेकंड है, इसलिए 1e4
झबरा

मेरा बुरा, भूल गया कि 10 != 1e4क्योंकि मैं एक मूर्ख हूँ
musicman523

3

VB.Net - 174 बाइट्स

Module M
Sub Main()
Dim t=New Threading.Thread(Sub()Console.Read()):t.Start():Console.WriteLine(If(t.Join(10000),"","no ") & "input received"):End
End Sub
End Module

कल आने वाला COBOL संस्करण ;-)


3
मुझे यकीन नहीं है कि क्या लाभ लाइनों के साथ संयोजन का है :। लाइन ब्रेक के रूप में बाइट्स की संख्या समान होती है, इसलिए यह गोल्फ स्कोर में सुधार के बिना सिर्फ पठनीयता को घटाता है।
कॉडी ग्रे

@ कॉडीग्रे मेरा मानना ​​है कि :लाइन ब्रेक प्रतिस्थापन इसलिए हो सकता है कि रिपीटिंग के बिना ट्रेंडिंग कॉल को इनलाइन घोषित किया जा सकता है - लेकिन कहा कि मैं सकारात्मक नहीं हूं, मेरी मुख्य भाषा वीबीए है जो <स्ट्राइक से थ्रेडिंग या रीडिंग का समर्थन नहीं करती है: कंसोल < / स्ट्राइक> फंक्शन की परिभाषा या कॉलिंग के समय से तत्काल विंडो अस्सिटेंट: P
टेलर स्कॉट

3

जाओ, 149 बाइट्स

package main
import(
."fmt"
."time"
."os"
)
func main(){
o:="input received"
go func(){Sleep(1e10)
Print("no "+o)
Exit(0)}()
i:=""
Scan(&i)
Print(o)}

3

एएचके , 67 65 बाइट्स

2 बाइट्स ब्लौहिर द्वारा बचाए गए

InputBox,o,,,,,,,,,10
s:=ErrorLevel?"no ":
Send %s%input received

AHK में इनपुट बॉक्स के लिए एक अंतर्निहित टाइमआउट है।
मैंने !oइसके बजाय चतुर और उपयोग करने की कोशिश की, ErrorLevelलेकिन यह विफल हो जाता है अगर उपयोगकर्ता एक गलत मूल्य देता है।
उत्तर का लगभग आधा हिस्सा केवल कमांड के नाम और निश्चित पाठ है।


1
सभी अल्पविराम किस लिए हैं?
पावेल

@Phoenix संभवतः इनपुटबॉक्स
आदम

@Phoixix Timeoutलगभग अंतिम पैरामीटर है:InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default]
इंजीनियर टोस्ट

दो s:=errorLevel?"no ":
शार्ट्स

@ बहलोहिन गाह! मैं बेवकूफ़ हूँ। धन्यवाद।
इंजीनियर टोस्ट

3

पायथन 3, 100 89 83 71 बाइट्स

import pty
print("no input received"[3*any(pty.select([0],[],[],10)):])

सबसे पहले गोल्फिंग का प्रयास करें।

-4 के लिए any(), टुकड़ा करने की क्रिया के लिए -7, धन्यवाद @ user2357112!

-6, के बजाय select()से प्राप्त करें ।ptyselect


आप एक "no input received"स्ट्रिंग कटाकर कुछ बाइट्स काट सकते हैं "no input received"[3*bool(...):]:।
user2357112

तुम भी उपयोग कर सकते हैं any(...)के बजाय bool(...[0])
user2357112

-नए उपयोगकर्ता: "विंडोज पर यह मॉड्यूलनोट फेंकता है। आश्रम: '
टर्मियोस

ptyमॉड्यूल Linux प्लेटफार्मों पर ही उपलब्ध है, लेकिन मैं केवल यह उपयोग कर रहा हूँ क्योंकि इसके नाम कम है और यह बनाता है selectउपलब्ध। संस्करण 2 शायद विंडोज पर बेहतर काम करता है।
सेठ

3

पॉवरशेल, 110 बाइट्स

$s1=date;while(![console]::KeyAvailable-and($i=((date)-$s1).seconds-lt10)){}
"{0}input received"-f(,'no ')[$i]

3

पायथन 3, 158 बाइट्स

import os,threading as t,time
def k(t=10):time.sleep(t);print("No input received"[(10-t)//3:]);os.kill(os.getpid(),t)
t.Thread(None,k).start()
if input():k(0)

मैंने सेठ के पाइथन 3 उत्तर को चलाने की कोशिश की, लेकिन विंडोज पर यह फेंकता है ModuleNotFoundError: No module named 'termios', और जब से मैं इसके बारे में उसके जवाब पर टिप्पणी नहीं कर सकता, मैंने इसके बजाय एक समाधान के साथ आने का फैसला किया, जिसे स्वतंत्र होना चाहिए।

यह मेरी पहली बार गोल्फ है इसलिए मुझे यकीन है कि इसमें सुधार किया जा सकता है।


2
PPCG में आपका स्वागत है!
Steadybox


2

स्माइलबासिक 3, 74 बाइट्स

किसी भी बटन प्रेस की प्रतीक्षा करके "इनपुट स्वीकार करता है" (जिसे इनपुट के रूप में गिना जाना चाहिए)

M=MAINCNT@L
N=MAINCNT-M>599CLS?"NO "*N;"INPUT RECEIVED
ON N+BUTTON()GOTO@L

आउटपुट "(कोई) इनपुट प्राप्त होना चाहिए", न कि "INPUT (NOT) RECEIVED"
Pavel

2

स्क्रैच 2 / 3.x, 41 अंक ( स्पष्टीकरण )

अधीर टाइमर

1: जब GF ने क्लिक किया

1: पूछें [] और प्रतीक्षा करें

1 + 14 वर्ण: कहते हैं [प्राप्त इनपुट]

1: स्टॉप [ऑल वी] (नोट: चूंकि "ऑल" इसकी डिफॉल्ट सेटिंग थी इसलिए मैंने 1 को ब्लॉक के रूप में गिना)

1 + 2 अंक: प्रतीक्षा (10) सेकंड

1 + 17 वर्ण: कहते हैं [कोई इनपुट नहीं मिला]

1: stop [all v]


PCG में आपका स्वागत है!
राहुल भारद्वाज

1

> <> , 43 + 6 = 49 बाइट्स

a/!/i0(?\~"input recieved"r>o<
o "\?:-1/r"n

इसे ऑनलाइन आज़माएं!

-t.08झंडे के लिए +5 , जो टिक को 0.08 सेकंड के लिए सेट करता है, और aध्वज के लिए +1 , जो व्हाट्सएप को गिनता है और निर्देशों को टिक के रूप में छोड़ देता है।

प्रोग्राम हर सेकंड में एक बार इनपुट की जाँच करता है, और इनपुट का पता चलने पर लूप को बाहर निकाल देता है। यदि इनपुट प्राप्त नहीं होता है, तो यह लूप को नीचे से बाहर निकालता है, noस्ट्रिंग की शुरुआत में जोड़ता है। प्रारंभिक /यह सुनिश्चित करना है कि इनपुट के लिए अंतिम जांच 10 सेकंड के निशान पर है।

इसके बाद स्ट्रिंग को प्रिंट करने में लगभग 5-6 सेकंड का समय लगता है।


आप -at.08एक बाइट का उपयोग कर सकते हैं, एक बाइट को बचाने के लिए।
पावेल

@ फावड़ा, धन्यवाद!
जो राजा

1

जावा 1.4+, 284 बाइट्स

import static java.lang.System.*;public class X{public static void main(String[]x){new Thread(){public void run(){try{Thread.sleep(10000L);}catch(Exception e){}out.print("no input recieved");exit(0);}}.start();new java.util.Scanner(System.in).nextLine();out.print("input recieved");}}

Ungolfed:

import static java.lang.System.*;

public class InputAndWait {
    public static void main(String[] x) {
        new Thread() {
            public void run() {
                try {
                    Thread.sleep(10000L);
                } catch (Exception e) {
                }
                out.print("no input recieved");
                exit(0);
            }
        }.start();
        new java.util.Scanner(System.in).nextLine();
        out.print("input recieved");
    }
}

कृपया संस्करण-विशिष्ट जावा सुधारों का सुझाव न दें, यह एक सामान्य जावा उत्तर है जो वर्तमान में स्थिर जावा वातावरण (1.4 और ऊपर) में काम करता है।


बहुत अजीब बात है ... पकड़ आवश्यक है, इसे फेंक नहीं सकते। सिस्टम आयात 5 बाइट्स की तरह बंद हो जाता है ... ओवरलोडिंग भी चिंताजनक है, इसलिए यह एक खराब खराब-गोल्फ वाली दिखने वाली गंदगी को समाप्त करता है।


क्या यह होना चाहिए 10000Lऔर नहीं 10000? मैंने सोचा कि स्वचालित रूप से लंबे समय तक डाली जाती है।
पावेल

1

जूलिया 0.6 , 78 बाइट्स

जितनी मुझे उम्मीद थी उससे कहीं ज्यादा। "कोई इनपुट प्राप्त नहीं" TIO लिंक के लिए टिप्पणियां देखें।

s="input recieved"
Timer(x->(show("no "*s);exit()),10)
readline(STDIN)
show(s)

इसे ऑनलाइन आज़माएं!


1
यह TIO पर ब्लॉक नहीं करता है क्योंकि यह एक फ़ाइल से पढ़ रहा है। यह ईओएफ को हिट करता है और तुरंत खत्म हो जाता है। यदि आप TIO पर कार्यक्रम में कभी भी नई प्रक्रिया का उत्सर्जन नहीं करते हैं, तो यह अवरुद्ध हो जाएगा: यह tio.run/##JcqxDoIwEIDhvU9x6ULPCNXFxejk4iIiowvaSzgDLekVReO7V4Pb/…
Pavel

0

स्माइलबासिक, 74 73 बाइट्स

M=MAINCNT
WHILE!I*M>MAINCNT-600I=INKEY$()>"
WEND?"no "*!I;"input received

इनपुट का 1 वर्ण लेता है।

और एक 39 बाइट समाधान जो संभवतः मान्य नहीं है (वास्तव में पाठ इनपुट को स्वीकार नहीं करता है, बस एक OKबटन है जिसे आप दबा सकते हैं)

?"no "*!DIALOG("",,,10);"input received
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.