我最近开始使用Java,想要了解大型应用程序的java模块.我遇到了这行java代码:
String line = (new BufferedReader(new InputStreamReader(System.in))).readLine();
Run Code Online (Sandbox Code Playgroud)
这个java代码做了什么.有没有C/C++相当于此?
System.in 是标准输入.
InputStreamReader 允许您关联从指定输入读取的流(在本例中为标准输入),因此现在我们有一个流.
BufferedReader是一个"抽象"来帮助您使用流.例如,它实现readLine而不是逐个字符地读取,直到找到'\n'来获取整行.它只是在这个进程后返回一个String.
所以这一行意味着:"从标准输入读取一行并将其存储在line变量中".
> 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)