当前位置: 首页 > news >正文

赣州市建设工程质量监督平台网站wordpress文章末尾加上相关文章

赣州市建设工程质量监督平台网站,wordpress文章末尾加上相关文章,图片网站 seo,wordpress 积分接收命令行参数 命令行程序是计算机程序最基础的存在形式#xff0c;几乎所有的操作系统都支持命令行程序并将可视化程序的运行基于命令行机制。 命令行程序必须能够接收来自命令行环境的参数#xff0c;这些参数往往在一条命令行的命令之后以空格符分隔。 在很多语言中几乎所有的操作系统都支持命令行程序并将可视化程序的运行基于命令行机制。 命令行程序必须能够接收来自命令行环境的参数这些参数往往在一条命令行的命令之后以空格符分隔。 在很多语言中如 Java 和 C/C环境参数是以主函数的参数常常是一个字符串数组传递给程序的但在 Rust 中主函数是个无参函数环境参数需要开发者通过 std::env 模块取出过程十分简单 实例 fn main() {let args  std::env::args();println!({:?}, args); } 现在直接运行程序 Args { inner: [D:\\rust\\greeting\\target\\debug\\greeting.exe] } 也许你得到的结果比这个要长的多这很正常这个结果中 Args 结构体中有一个 inner 数组只包含唯一的字符串代表了当前运行的程序所在的位置。 但这个数据结构令人难以理解没关系我们可以简单地遍历它 实例 fn main() {let args  std::env::args();for arg in args {println!({}, arg);} } 运行结果 D:\rust\greeting\target\debug\greeting.exe 一般参数们就是用来被遍历的不是吗。 现在我们打开许久未碰的 launch.json 找到 args: []这里可以设置运行时的参数我们将它写成 args: [first, second] 然后保存、再次运行刚才的程序运行结果 D:\rust\greeting\target\debug\greeting.exe first second 作为一个真正的命令行程序我们从未真正使用过它作为语言教程不在此叙述如何用命令行运行 Rust 程序。但如果你是个训练有素的开发者你应该可以找到可执行文件的位置你可以尝试进入目录并使用命令行命令来测试程序接收命令行环境参数。 命令行输入 早期的章节详细讲述了如何使用命令行输出这是由于语言学习的需要没有输出是无法调试程序的。但从命令行获取输入的信息对于一个命令行程序来说依然是相当重要的。 在 Rust 中std::io 模块提供了标准输入可认为是命令行输入的相关功能 实例 use std::io::stdin;fn main() { let mut str_buf  String::new();stdin().read_line(mut str_buf).expect(Failed to read line.);println!(Your input line is \n{}, str_buf); } 令 VSCode 环境支持命令行输入是一个非常繁琐的事情牵扯到跨平台的问题和不可调试的问题所以我们直接在 VSCode 终端中运行程序。在命令行中运行 D:\rust\greeting cd ./target/debug D:\rust\greeting\target\debug ./greeting.exe RUNOOB Your input line is RUNOOB std::io::Stdio 包含 read_line 读取方法可以读取一行字符串到缓冲区返回值都是 Result 枚举类用于传递读取中出现的错误所以常用 expect 或 unwrap 函数来处理错误。 注意目前 Rust 标准库还没有提供直接从命令行读取数字或格式化数据的方法我们可以读取一行字符串并使用字符串识别函数处理数据。 文件读取 我们在计算机的 D:\ 目录下建立文件 text.txt内容如下 This is a text file. 这是一个将文本文件内容读入字符串的程序 实例 use std::fs;fn main() {let text  fs::read_to_string(D:\\text.txt).unwrap();println!({}, text); } 运行结果 This is a text file. 在 Rust 中读取内存可容纳的一整个文件是一件极度简单的事情std::fs 模块中的 read_to_string 方法可以轻松完成文本文件的读取。 但如果要读取的文件是二进制文件我们可以用 std::fs::read 函数读取 u8 类型集合 实例 use std::fs;fn main() {let content  fs::read(D:\\text.txt).unwrap();println!({:?}, content); } 运行结果 [84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 116, 101, 120, 116, 32, 102, 105, 108, 101, 46] 以上两种方式是一次性读取十分适合 Web 应用的开发。但是对于一些底层程序来说传统的按流读取的方式依然是无法被取代的因为更多情况下文件的大小可能远超内存容量。 Rust 中的文件流读取方式 实例 use std::io::prelude::*; use std::fs;fn main() {let mut buffer  [0u8; 5];let mut file  fs::File::open(D:\\text.txt).unwrap();file.read(mut buffer).unwrap();println!({:?}, buffer);file.read(mut buffer).unwrap();println!({:?}, buffer); } 运行结果 [84, 104, 105, 115, 32] [105, 115, 32, 97, 32] std::fs 模块中的 File 类是描述文件的类可以用于打开文件再打开文件之后我们可以使用 File 的 read 方法按流读取文件的下面一些字节到缓冲区缓冲区是一个 u8 数组读取的字节数等于缓冲区的长度。 注意VSCode 目前还不具备自动添加标准库引用的功能所以有时出现函数或方法不存在一样的错误有可能是标准库引用的问题。我们可以查看标准库的注释文档鼠标放到上面会出现来手动添加标准库。 std::fs::File 的 open 方法是只读打开文件并且没有配套的 close 方法因为 Rust 编译器可以在文件不再被使用时自动关闭文件。 文件写入 文件写入分为一次性写入和流式写入。流式写入需要打开文件打开方式有新建create和追加append两种。 一次性写入 实例 use std::fs;fn main() {fs::write(D:\\text.txt, FROM RUST PROGRAM).unwrap(); } 这和一次性读取一样简单方便。执行程序之后 D:\text.txt 文件的内容将会被重写为 FROM RUST PROGRAM 。所以一次性写入请谨慎使用因为它会直接删除文件内容无论文件多么大。如果文件不存在就会创建文件。 如果想使用流的方式写入文件内容可以使用 std::fs::File 的 create 方法 实例 use std::io::prelude::*; use std::fs::File;fn main() {let mut file  File::create(D:\\text.txt).unwrap();file.write(bFROM RUST PROGRAM).unwrap(); } 这段程序与上一个程序等价。 注意打开的文件一定存放在可变的变量中才能使用 File 的方法 File 类中不存在 append 静态方法但是我们可以使用 OpenOptions 来实现用特定方法打开文件 实例 use std::io::prelude::*; use std::fs::OpenOptions;fn main() - std::io::Result() {let mut file  OpenOptions::new().append(true).open(D:\\text.txt)?;file.write(b APPEND WORD)?;Ok(()) } 运行之后D:\text.txt 文件内容将变成 FROM RUST PROGRAM APPEND WORD OpenOptions 是一个灵活的打开文件的方法它可以设置打开权限除append 权限以外还有 read 权限和 write 权限如果我们想以读写权限打开一个文件可以这样写 实例 use std::io::prelude::*; use std::fs::OpenOptions;fn main() - std::io::Result() {let mut file  OpenOptions::new().read(true).write(true).open(D:\\text.txt)?;file.write(bCOVER)?;Ok(()) } 运行之后D:\text.txt 文件内容将变成 COVERRUST PROGRAM APPEND WORD
http://www.pierceye.com/news/609735/

相关文章:

  • 网站建设 考核指标wordpress4.9升级失败
  • 什么网站可以做名片网站后台登陆密码忘记
  • 韩式摄影网站源码内蒙古建设安全监督站的网站
  • 做阿里巴巴网站可以贷款吗印尼做网站的教学 中文
  • 做旅游宣传不错的网站成都制作网站的公司简介
  • 上海网站制作优化app软件开发平台游戏
  • 江苏省通信建设交易中心网站PHP+Ajax网站开发典型实例
  • 邵阳市住房和建设局网站中国万网商城
  • 网站设计建设流程wordpress删除插件
  • 微信属于营销型网站江苏茂盛建设有限公司网站
  • 电商网站源代码企业推广是什么意思
  • 企业型网站网站建设与网页设计案例教程 重庆大学出版社
  • owasp 网站开发什么网站可以做全景图
  • 做一个宣传网站要多少钱东莞松山湖网站建设
  • 沧州网站制作的流程让蜘蛛不抓取网站的文件夹
  • 高端网站建设电话昆明做网站公司
  • 建网站一般用什么工具wordpress企业主题免费
  • 新手建设html5网站官方网站开发制作
  • 网页版拍图搜题seo的流程是怎么样的
  • 吴中区做网站那个网站可以找人做设计师
  • 光效网站网站建设方案浩森宇特
  • 亚马逊网站入口英文专业的网站设计
  • 赤水市白房建设局网站企业网站如何进行定位
  • 有私人做网站的吗网页界面设计方法
  • 免费 网站模板中国建设银行总行门户网站
  • 网站推广的方式公司组网
  • 推广 网站的优秀文案劳务输送网站建设方案
  • 特色的岑溪网站开发济南响应式网站开发
  • 网站源码官网招聘网站内容建设
  • 网站如何布局wordpress 商城系统