在本文中,我们将探索 Rust 编程语言中的标准输入和标准输出。通常,标准输入通过键盘提供,而标准输出则在控制台中显示数值。
Rust 中有两个核心 trait,Rust 的标准输入和输出都是围绕它们构建的。它们提供了用于输入和显示输出的接口。这两个 trait 列举如下:
- Read Trait(读取 trait)
- Write Trait(写入 trait)
让我们详细探讨一下它们。
Read Trait(读取 trait):
通过名为 Readers(读取器) 的 Rust 组件,我们可以从输入设备以字节的形式读取输入。read_line() 函数用于从输入流或文件中一次读取一行数据。请看下面的示例:
示例:
Rust
CODEBLOCK_a0ab6995
Output:
与其他编程语言类似,我们使用 INLINECODE275e6997(标准输入/输出)库,通过 INLINECODE7bf71296 函数来获取输入,这类似于 C 语言中的 INLINECODEfa82fcf9。INLINECODEa470cf44 和 mut 是关键字,用于创建一个可变变量,该变量可以保存给定的字符串。
Write Trait(写入 trait):
Rust 中的 Writers(写入器)是指能够以字节形式将数据写入文件或输出流的程序。为此目的,我们使用 write() 方法。请看下面的示例。
示例:
Rust
CODEBLOCK_3ed926c1
Output:
Geeksforgeeks is the best.
26 bytes of data has been written!
在上面的示例中,INLINECODE2e80d082 函数应用于由 INLINECODEb4d581b9 标准库函数返回的标准输出流。INLINECODE9f87bd13 方法返回一个 enum(枚举),该枚举随后被 INLINECODE9744125b 函数提取以显示结果。
I/O Macros(I/O 宏):
INLINECODE6b68512e 函数几乎是所有主要编程语言中用于打印任何输出最重要且最常用的函数。Rust 拥有 INLINECODE18b28afc 和 INLINECODEb3dfafb1 函数,类似于 C 语言中的 INLINECODEc8326cbf。我们将看看如何在 Rust 中打印输出。Rust 的 INLINECODEa82c8036 和 INLINECODE951da05d 之间的主要区别在于,INLINECODE3eb27afc 在同一行输出,而 INLINECODEa38350fb 则在新的一行输出。
#### print!
程序的 INLINECODE1bbe4eb7 宏函数几乎类似于 C++ 中没有 INLINECODE5202d0a6(或)INLINECODEd008749d 的 INLINECODEd9a3c162。下面给出了一个 print 的示例:
示例:
Rust
CODEBLOCK_126be08e
Output:
Hello, Geeks Welcome to GeeksForGeeks
#### println!
INLINECODEdb66ad23 是一个打印到标准输出的宏,带有换行符。我们可以仅将 INLINECODE9091a0f8 用于程序的主要输出。
示例:
Rust
CODEBLOCK_26e641a1
Output:
Hello, Geeks
Welcome to GeeksForGeeks
Reading Input(读取输入)
与其他编程语言类似,我们使用 INLINECODE112835d9(标准输入/输出)库,通过 INLINECODE8203b6f1 函数来获取输入,这类似于 C 语言中的 INLINECODE48ee22c9。INLINECODEaee974f8 和 mut 是关键字,用于创建一个可变变量,该变量可以保存给定的字符串。
Rust
CODEBLOCK_4c8542c0
Output:
Enter a name: geeksforgeeks
You entered geeksforgeeks
CommandLine Arguments(命令行参数):
命令行参数是通过控制台传递给程序进行处理的值。这类似于你将参数值传递给 INLINECODE6f326029 函数的方式。INLINECODE92d62140 用于返回命令行参数。请看下面的示例。
示例:
在这个示例中,我们将使用命令行参数将值传递给程序的 main 函数。
Rust
CODEBLOCK_2a0a1dc7
让我们来看看我们在上面的示例中做了什么。首先,我们需要使用 INLINECODEc6324621 来引入 environment module(环境模块)。然后我们创建一个新的字符串向量。现在,这个向量只是读取我们的每一个参数。这意味着我们可以直接说向量的类型是字符串,它等于一个变量,并且使用了 INLINECODEebcc6101。