Java中的BufferedReader和InputStreamReader

Sha*_*han 6 c c++ java string

我最近开始使用Java,想要了解大型应用程序的java模块.我遇到了这行java代码:

String line = (new BufferedReader(new InputStreamReader(System.in))).readLine();
Run Code Online (Sandbox Code Playgroud)

这个java代码做了什么.有没有C/C++相当于此?

aru*_*aku 8

System.in 是标准输入.

InputStreamReader 允许您关联从指定输入读取的流(在本例中为标准输入),因此现在我们有一个流.

BufferedReader是一个"抽象"来帮助您使用流.例如,它实现readLine而不是逐个字符地读取,直到找到'\n'来获取整行.它只是在这个进程后返回一个String.

所以这一行意味着:"从标准输入读取一行并将其存储在line变量中".


Mik*_*ike 7

> What does this java code do:

String line是你的字符串对象

new BufferedReader().readLine()是从字符输入流中读取文本的BufferedReader的实例; 并且readline()是它实现的方法,直到换行符.

new InputStreamReader()给你一个InputStreamReader的实例,它是字节流标准和BufferedReader想要的字符流之间的"桥梁" .

System.in 是标准输入(字节流)


> Is there a C/C++ equivalent of this
嗯......没有一种叫做C/C++的语言......;)
所以我假设你想要每个人的答案.

在C中,没有"字符串"你必须使用字符数组,但你可以用以下内容读取数据到字符数组stdin:

char input[100];
...
scanf("%99[^\n]", input);
Run Code Online (Sandbox Code Playgroud)

要么

fgets (input, 100 , stdin) 
Run Code Online (Sandbox Code Playgroud)

在C++中,您将使用:

using namespace std;

string line;
getline(cin, line);
Run Code Online (Sandbox Code Playgroud)