我正在尝试为学校做作业,我不知道如何处理输入。我在下面提供了一个关于作业背景的链接:
我对如何完成作业所要求的一切有一个大概的想法,但我不确定如何处理输入。
示例输入是:
A0
0
A00
ab000
其输出为:
树1:
无效!
树2:
身高:-1
路径长度:0
完成:是的 后序:
树3:
身高:0
路径长度:0
完成:是的 后序:a 树4:
身高:1
路径长度:1
完成:是的 后序:ba
我打算用Java做这件事。我的问题是,如果没有在输入文件中输入管道,如何将样本中的多行输入输入Windows cmd.exe行?因为按Enter键只会使用一行输入来运行程序,而不是创建一个新行。此外,由于分配是自动标记的,输入不能是交互式的,那么我如何知道何时停止阅读呢?
感谢。
答案 0 :(得分:2)
来自作业:
您可以假设输入将会到来 来自流中的标准输入 每行代表一个字符串。在 现实,输入将来自一个 传送到标准的文件。 输出应发送到标准输出。 样本输入和输出文件是 可用。
只需阅读System.in并写入System.out即可。由于输入将通过管道输出到标准输入,因此您将在输入文件的末尾获得EOF。
通过CMD窗口进行交互时,使用Ctrl-Z指示EOF(在Windows上)或Linux系统上,使用Ctrl-D
答案 1 :(得分:1)
如果可以使用System.in,则可以使用从System.in流中读取的InputStreamReader。然后,使用BufferedReader使用readLine()方法获取每一行。例如,看看这段代码:
InputStreamReader input = new InputStreamReader(System.in)
BufferedReader reader = new BufferedReader(input);
while (reader.readLine()) {
//Your code here. It will finish when the reader finds an EOL.
}
答案 2 :(得分:1)
此代码可以正常运行 -
Scanner sc = new Scanner(System.in);
String bitstring="";
while(sc.hasNextLine()){ //until no other inputs to proceed
bitstring=sc.nextLine();//save it to the bitstring
//proceed with your other codes
}