Java语言中的输入Scanner类和C语言中的输入函数scanf都是用来读取用户输入的数据的。然而,它们之间存在一些区别。
首先,Scanner类可以读取不同数据类型的输入,包括整数、浮点数、布尔值和字符串等。而scanf函数需要根据格式字符指定要读取的数据类型,这使得scanf函数比较难用,并且容易出错。
其次,Scanner类提供了更多的输入选项。例如,可以使用Scanner类的nextLine()方法读取整行输入,或使用nextDouble()方法读取含有小数点的输入。而scanf函数则不能做到这些。
另一个不同点是,Scanner类是面向对象的,它可以通过实例化对象的方式来使用。在使用Scanner类之前,需要先创建一个Scanner对象,然后调用该对象的方法来读取输入。而scanf函数则是一个函数,在使用之前不需要先创建任何对象。
下面是Java中使用Scanner类读取用户输入的示例代码:
import java.util.Scanner;
public class UserInputExample {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = input.nextLine();
System.out.println("请输入你的年龄:");
int age = input.nextInt();
System.out.println("你的姓名是:" + name);
System.out.println("你的年龄是:" + age);
}
}
在上面的代码中,创建了一个Scanner对象,并调用了它的nextLine()和nextInt()方法来读取用户输入的姓名和年龄。最后,将这些输入输出到屏幕上。
而下面是C语言中使用scanf函数读取用户输入的示例代码:
#include <stdio.h>
int main() {
char name[20];
int age;
printf("请输入你的姓名:");
scanf("%s", name);
printf("请输入你的年龄:");
scanf("%d", &age);
printf("你的姓名是:%s\n", name);
printf("你的年龄是:%d\n", age);
return 0;
}
在上面的代码中,使用了scanf函数来读取用户输入的姓名和年龄。需要注意的是,对于字符数组name,scanf函数并不知道它的长度,因此需要指定一个最大的长度(例如上面的20)。另外,在读取整数时,需要使用&符号来获取该变量的地址。最后,使用printf函数将这些输入输出到屏幕上。