簡體   English   中英

在編程比賽中接受輸入時,如何阻止掃描儀讀取輸入?

[英]When taking input in programming competitions, what do I do to stop the scanner from reading input?

我以前參加過一場比賽,而我也參加過另一場比賽。 但是在其中時,我意識到我不知道如何從機器上獲取用戶輸入。 當普通人使用它時,我知道我可以通過為其指定關鍵字來退出,但是當它通過管道輸送到生成自己的代碼來測試我的機器的機器中時,我將如何在比賽中處理呢? 當我不知道最后一個輸入是什么時,如何編寫代碼以退出while循環?

在Java中查看時:

while(sc.hasNext()){ /*code here. Breaks out when machine input is done*/}

我調查了一下,發現:“從STDIN讀取輸入,然后輸出到STDOUT。” 當我單擊java的鏈接時,它為我提供了緩沖讀取器或掃描器的Wikipedia,但沒有提供其他信息,只是我提供的示例代碼。

輸入樣例:

2
2 5
3 4 8

假設第一行是要讀取的行數。 我們如何知道何時停止在每一行中停止閱讀,還是只閱讀整行?

while(sc.hasNext() && !shouldStopReading){ /*code here*/}

或者還有...

while(sc.hasNext()){ /*code here*/ if (shouldStopReading) { break; } }

要回復您的修改,請執行以下操作:

樣本輸入:2 2 5 3 4 8

假設第一行是要讀取的行數。 我們如何知道何時停止在每一行中停止閱讀,還是只閱讀整行?

“換行”通常以Windows上的回車/換行結束,或者以Mac / Unix / Linux上的換行結束。 您可以只查找這些字符來分隔行。

通常,有專門用於讀取“行”的功能。

您的示例似乎很簡單。 作為偽代碼:

String lineCountString = ReadLine();
int lineCount = StringToInt(lineCountString);
for (i from 0 to lineCount - 1)
     String aLine = ReadLine();
     DoSomethingWithEachLine(aLine);

轉到http://www.go-hero.net/jam/ ,其中包含所有輸入的Google Code Jam解決方案的摘要。

您可以按語言搜索,並看到許多有關如何讀取輸入文件的示例。

通過查看示例,您可能會更好地了解執行此操作的不同方式。

某些競爭問題會指定一個確定有效輸入的計數 ,如本示例所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM