我正在尝试从中读取一个字符stdin,但我无法使其正常工作.在不同的程序中,我使用了这个完全相同的方法并且它有效.
let mut buffer = [0];
let _ = std::io::stdin().read(&mut buffer);
let a = buffer[0];
Run Code Online (Sandbox Code Playgroud)
编译它会出现此错误:
src/befunge.rs:220:17: 220:31 error: failed to resolve. Use of undeclared type or module `std::io` [E0433]
src/befunge.rs:220 let _ = std::io::stdin().read(&mut buffer);
Run Code Online (Sandbox Code Playgroud) 我正在从套接字读取一系列字节,我需要将n个字节的每个段作为项目放在结构中.
use std::mem;
#[derive(Debug)]
struct Things {
x: u8,
y: u16,
}
fn main() {
let array = [22 as u8, 76 as u8, 34 as u8];
let foobar: Things;
unsafe {
foobar = mem::transmute::<[u8; 3], Things>(array);
}
println!("{:?}", foobar);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是24位foobar时的32位错误array.不应该foobar是24位(8 + 16 = 24)?
我试图从套接字读取4个字节,然后将这些字节转换为单个u32.
let mut length: u32 = 0;
// Transmute 4 byte array into u32
unsafe {
let length = mem::transmute::<[u8; 4], u32>(buf); // buf is the 4 item array of u8 that the socket was read into
println!("1: {:}", length);
}
println!("Length: {:}", length);
Run Code Online (Sandbox Code Playgroud)
但是,一旦在不安全块之外,长度的原始值为0.我怎么能绕过这个?
我想弄清楚如何在 Rust 中与 USB 设备连接。有没有人有办法解决吗?我找到了一个名为 usb-rust 的软件包,但它已被弃用。
说我们有这个:
func foo() func() int {
return func() {
for i := range [0..10] {
return i
}
}
}
func main() {
for i := foo() {
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在不知道循环多少次的情况下在 for 循环中迭代返回的函数吗?