使用 InputStream.skip() 时出错
Error using InputStream.skip()
我正在寻找类似于 C++ 的 cin.ignore()
函数的东西。
我是 JAVA 的新手,我正在尝试这样的事情
Scanner user_input = new Scanner(System.in) ;
int num1, num2 ;
System.out.print("\n Enter the two numbers : " +
"\n number 1 : ") ;
num1 = user_input.nextInt() ;
System.out.print("\n Number 2 : ") ;
num2 = user_input.nextInt() ;
在这一行之后,当我试图从用户那里获取 String
输入时
String choice;
choice = user_input.nextLine() ;
它只是忽略它继续到下一行。
我在接受用户的 String
输入之前尝试使用 InputStream.skip(long) ;
。我从 here 中读到等同于 C++ 的 cin.ignore()
我犯了什么错误?
哦,我也包括了这个 import java.io.InputStream;
编辑:我问的是我是否可以在这里使用 InputStream.skip()
。
"It just ignores it continues to the next line."
当你说 num2 = user_input.nextInt() ;
时,你在最后按 return(输入)键也不会与 num2 一起读取,因此当你说 choice = user_input.nextLine();
时(return key) 被这个方法调用消耗掉了,因此你看到它忽略了你读取一行的方法调用。
您可以通过两种方式解决此问题:
您可以读取整行并在读取 num2 时转换为整数,例如
num2 = Integer.parseInt(user_input.nextLine());
或者只是为了消耗 return 按键,您可以添加额外的 readline 调用,例如:
user_input.nextLine();//consume enter key press
choice = user_input.nextLine();
我正在寻找类似于 C++ 的 cin.ignore()
函数的东西。
我是 JAVA 的新手,我正在尝试这样的事情
Scanner user_input = new Scanner(System.in) ;
int num1, num2 ;
System.out.print("\n Enter the two numbers : " +
"\n number 1 : ") ;
num1 = user_input.nextInt() ;
System.out.print("\n Number 2 : ") ;
num2 = user_input.nextInt() ;
在这一行之后,当我试图从用户那里获取 String
输入时
String choice;
choice = user_input.nextLine() ;
它只是忽略它继续到下一行。
我在接受用户的 String
输入之前尝试使用 InputStream.skip(long) ;
。我从 here 中读到等同于 C++ 的 cin.ignore()
我犯了什么错误?
哦,我也包括了这个 import java.io.InputStream;
编辑:我问的是我是否可以在这里使用 InputStream.skip()
。
"It just ignores it continues to the next line."
当你说 num2 = user_input.nextInt() ;
时,你在最后按 return(输入)键也不会与 num2 一起读取,因此当你说 choice = user_input.nextLine();
时(return key) 被这个方法调用消耗掉了,因此你看到它忽略了你读取一行的方法调用。
您可以通过两种方式解决此问题:
您可以读取整行并在读取 num2 时转换为整数,例如
num2 = Integer.parseInt(user_input.nextLine());
或者只是为了消耗 return 按键,您可以添加额外的 readline 调用,例如:
user_input.nextLine();//consume enter key press choice = user_input.nextLine();