作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚如何将字符串写入文件。以下给了我错误format argument must be a string literal
:
use std::fs::File;
use std::io::{Error, Write};
fn main() -> Result<(), Error> {
let path = "results.txt";
let mut output = File::create(path)?;
let line = println!("{}", "hello");
write!(output, line);
}
如何从字符串变量写入文件?如果我更改以下行,它可以工作,但是如果字符串在变量中,我不知道如何写入文件。
write!(output, "foo,bar,baz");
最佳答案
write!
是一个宏,类似于 print!
.它需要 2 个或多个参数,第一个是编写器,第二个是格式字符串(必须是字符串文字),然后是零个或多个表达式,这些表达式将放置在格式字符串的占位符中。
因此,您可以像这样组合最后两行:
fn main() -> Result<(), Error> {
let path = "results.txt";
let mut output = File::create(path)?;
let line = "hello";
write!(output, "{}", line);
}
写入 Writer 的其他方法包括调用
std::io::Write::write_all ,或者直接将切片写入文件,您可以使用
std::fs::write .
print!
宏不会以字符串形式返回输出,而是将输出打印到
stdout
.如果您想在字符串中获取格式化结果,请使用
format!
宏:
let my_string = format!("Hello {}", "world");
关于rust - 如何将字符串写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63713887/
我是一名优秀的程序员,十分优秀!