Rust - 终端输入、文件读写

2024-05-11 18:44
文章标签 rust 读写 终端 输入

本文主要是介绍Rust - 终端输入、文件读写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 查看参数
      • 接收终端输入
      • 读取文件
      • 写入文件


查看参数

fn main() {   let args = std::env::args();println!("{:?}", args); // Args { inner: ["target/debug/rt"] }for arg in args {println!("{}", arg);}
}

接收终端输入

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);
}

读取文件

use std::io::prelude::*;  
use std::fs;fn main() {let text = fs::read_to_string("D:\\text.txt").unwrap();println!("{}", text);// 读 二进制文件  u8 类型集合let content = fs::read("D:\\text.txt").unwrap();println!("{:?}", content);// 流式读取 // 读取文件的下面一些字节到缓冲区(缓冲区是一个 u8 数组),读取的字节数等于缓冲区的长度。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);}

std::fs::File 的 open 方法是"只读"打开文件,并且没有配套的 close 方法,因为 Rust 编译器可以在文件不再被使用时自动关闭文件。


写入文件

use std::io::prelude::*;  
use std::fs;fn main() {// 一次写入fs::write("D:\\text.txt", "FROM RUST PROGRAM").unwrap();// 流式写入let mut file = File::create("D:\\text.txt").unwrap();file.write(b"FROM RUST PROGRAM").unwrap();
}

  • File 类中不存在 append 静态方法,但可以使用 OpenOptions 来实现 用特定方法打开文件

  • OpenOptions 是一个灵活的打开文件的方法,它可以设置打开权限,除append 权限以外还有 read 权限和 write 权限

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")?;let mut file = OpenOptions::new().read(true).write(true).open("D:\\text.txt")?; file.write(b"COVER")?;Ok(())
}

伊织 2024-05-10(五)

这篇关于Rust - 终端输入、文件读写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980352

相关文章

Android调用输入法软键盘,返回输入的内容

Android调用输入法软键盘,返回输入的内容                分类:            Android 2013-09-14 17:50 32人阅读 评论(0) 收藏 举报 Android NDK Android调出软键盘 InputMethodManager 我们一直在讲,C++写游戏代码,然后通过NDK编译,然后展现在Android层。 在游

关于cocos2d-x 中 CCEditBox 的输入位置和IOS虚拟键盘位置不重合的bug

关于cocos2d-x 中 CCEditBox 的输入位置和IOS虚拟键盘位置不重合的bug 这个文章的名字起的实在是有点长,主要是怕说不清楚。 在IOS上,输入时,我看到过的比较少,就两种,如附件两张图。一个是虚拟键盘的输入框完全是在CCEditBox上,另一张虚拟键盘的输入区域是紧挨着键盘的并且左对齐的。 我的cocos2d版本是2.1rc0-x-2.1.4,貌似是当前最新的。

ArcGIS修改datastore的读写模式

最近安装遇到一个大坑,由于磁盘空间不足,导致datastore被系统修改为readonly;此时将无法发布服务,那么此时我需要清理磁盘,并到datastore中修改readwrite;建议磁盘空间得预留20%空余。 进入C:\Program Files\ArcGIS\DataStore\tools; 使用 changedatastoremode readwrite命令修改后,如下:

按三角形逆序输入顶点来计算多边形面积

double fun(int x1,int y1,int x2,int y2,int x3,int y3) // 此处返回的面积有正负之分{double squre;squre=0.5*((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1));return squre;} 具体的题目课参考 杭电OJ 题目出处: 杭电2036题

STM32 使用硬件SPI读写W25Q64芯片

STM32使用硬件SPI读写W25Q64芯片 摘要 本文详细介绍了如何使用STM32微控制器的硬件SPI接口来读写W25Q64串行Flash存储器。W25Q64是一款8Mb的SPI Flash存储器,广泛应用于嵌入式系统中。本文将从硬件连接、SPI初始化、W25Q64初始化、读写操作等方面进行阐述,并提供相应的代码示例。 1. 硬件连接 首先,需要将W25Q64芯片与STM32开发板连接。

【单片机】DS2431芯片,读写128个字节,程序

ds2431p+t&r stm32读写程序: 部分程序: #include "sys.h"#include "delay.h"#include "usart.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include "sys.h"#include "DS2431.h"unsigned char seria

js控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数

【Html代码】 <table> <tr>     <td width="150">短信内容:</td>     <td>      <textarea name="message" cols="96" rows="5" onKeyDown="textCounter(message,remLen,65);"           onKeyUp="textCounter(messag

【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误

输入输出重定向、2>&1、标准输入、标准输出、标准错误 https://zhuanlan.zhihu.com/p/47765176 ./test.sh > log.txt 2>&1 每个程序在运行后,都会至少打开三个文件描述符,分别是 0:标准输入; 1:标准输出; 2:标准错误。 2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没

Rust创建基准测试bench

打开终端(或命令提示符)。 导航到父目录。 将 Rust 编译器切换到 nightly 版本: rustup default nightly 在该目录下运行 cargo init 命令来创建一个新的 Rust 项目,这将在当前目录下创建 Cargo.toml 和 src 目录: cargo init --lib 请注意,我们使用 --lib 选项因为我们将创建一个库项目而不

输入年月日以“-”为分隔符,输出是当年的多少天(仅用if和switch就实现)

小白的诡异写法(你没见过的船新版本),勿喷! #include<iostream>using namespace std;int main(){int a,b,d=0,n=28;char c;cin>>a>>c>>b>>c>>d;if((a%4==0&&a%100!=0)||(a%400==0))n+=1;switch(b){case 12:d+=10;case 11:d+=31;cas