之前我参加过一场比赛,而且我已经看过另一场比赛了。但当它进入时,我意识到我不知道如何从机器上获取用户输入。当一个普通的人使用它时,我知道我可以通过为其分配关键字来退出,但是当它被传送到一台生成自己的代码来测试我的机器时,我将如何处理它?当我不知道最后一个输入是什么时,如何编写我的代码以打破while循环?
在java中查看时:
while(sc.hasNext()){ /*code here. Breaks out when machine input is done*/}
我调查了一下,我发现了这个问题:“从STDIN读取输入并输出到STDOUT。”当我点击java的链接时,它给了我缓冲的阅读器或扫描仪的维基百科,但没有提供额外的信息,但我给出的示例代码。
示例输入:
2
2 5
3 4 8
让我们假设第一行是要读取多少行。我们如何知道何时停止阅读每一行,或者我们只是阅读整行?
答案 0 :(得分:2)
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);
答案 1 :(得分:2)
转到http://www.go-hero.net/jam/,其中包含所有已输入的Google Code Jam解决方案的记录。
您可以按语言搜索并查看有关如何读取输入文件的许多示例。
通过查看示例,您可能会更好地了解这样做的不同方法。
答案 2 :(得分:1)