gpt4 book ai didi

java - Java中输入Ctrl+D时如何退出程序?

转载 作者:行者123 更新时间:2023-11-30 10:53:35 24 4
gpt4 key购买 nike

下面是我的反向波兰计算器的一部分。

如果输入一个整数,将其压入堆栈,如果按下 =,查看结果。但是,我想添加另一个条件:如果用户按下 CTRL + D,则程序退出。

我在网上看过,但似乎找不到任何解决方案。有任何想法吗?谢谢。

Scanner mySc = new Scanner(System.in);
//If input is an integer, push onto stack.
if (mySc.hasNextInt()) {
myStack.push(mySc.nextInt());
}
//Else if the input is an operator or an undefined input.
else if (mySc.hasNext()) {
//Convert input into a string.
String input = mySc.nextLine();
//Read in the char at the start of the string to operator.
char operator = input.charAt(0);
if (operator == '=') {
//Display result if the user has entered =.
}
**else if ("CTRL-D entered") {
System.exit(0);
}**

最佳答案

试试这个:

public static void main(String[] args) {
try {
byte[] b = new byte[1024];
for (int r; (r = System.in.read(b)) != -1;) {
String buffer = new String(b, 0, r);
System.out.println("read: " + buffer);
}
} catch (Exception e) {
e.printStackTrace();
}
}

在这种情况下,当您按下 CTRL+D 时,循环将停止,这是因为 CTRL+DSystem.in InputStream 发送一个 EOF 信号,它是 -1。在*nix系统上就是这种情况,对于Windows系统,EOF信号是使用CTRL+Z组合键发送的

关于java - Java中输入Ctrl+D时如何退出程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33940564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com