我想将函数的输出写入文件.我预计这write_fmt就是我的要求:
use std::{
fs::File,
io::{BufWriter, Write},
};
fn main() {
let write_file = File::create("/tmp/output").unwrap();
let mut writer = BufWriter::new(&write_file);
// From my function
let num = 1;
let factorial = 1;
writer.write_fmt("Factorial of {} = {}", num, factorial);
}
Run Code Online (Sandbox Code Playgroud)
错误
error[E0061]: this function takes 1 parameter but 3 parameters were supplied
--> src/main.rs:11:12
|
11 | writer.write_fmt("Factorial of {} = {}", num, factorial);
| ^^^^^^^^^ expected 1 parameter
Run Code Online (Sandbox Code Playgroud)
这似乎是错误的,文档中没有太多可用的内容.
小智 8
use std::fs::File;
use std::io::Write;
fn main() {
let mut w = File::create("/tmp/test.txt").unwrap();
writeln!(&mut w, "test").unwrap();
writeln!(&mut w, "formatted {}", "arguments").unwrap();
}
Run Code Online (Sandbox Code Playgroud)
该文档指示该问题:所述write_fmt方法使用一个参数,类型的std::fmt::Arguments,它可以经由被构建format_args!宏.它还建议使用它的最佳方式:
write!应该优先使用宏来调用此方法.
一个调用write!(或writeln!)就像println!,但通过将写入的位置作为第一个参数传递:
write!(&mut writer, "Factorial of {} = {}", num, factorial);
Run Code Online (Sandbox Code Playgroud)
(请注意,文档在每个页面的顶部都有一个搜索栏,因此可以通过在<name>!那里搜索来查找文档,例如宏.)
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |