gpt4 book ai didi

file - 写入带有 rust 迹的文件时会写入多余的行

转载 作者:行者123 更新时间:2023-12-03 11:43:53 24 4
gpt4 key购买 nike

我有一个struct Point {x: f64, y: f64}。我还有线段Vec<(Point, Point)>的向量。
我正在将行的集合写入这样的文件中。

let lines = make_lines();
let mut file = OpenOptions::new()
.write(true)
.create(true)
.open("./points1")
.unwrap();
for (p1, p2) in lines {
writeln!(file, "{} {} {} {}", p1.x, p1.y, p2.x, p2.y).unwrap();
}
向量始终有1000行。但是有时会用10001、10002行写入文件。另外,可能相关的是那些多余的行有时有3个数字。
如果文件不存在,我想创建该文件,如果文件存在,则要覆盖它。

最佳答案

  • 您可能缺少.truncate(true),我不确定打开现有文件时光标的位置
  • 该文件肯定应该有10001行,因为writeln总是会在末尾添加换行符,最后会有一个空行,这是预期的(对于Unix文件是正常的)

  • 没有复制的情况下,可以说的话就不多了,您可以尝试显式刷新/同步写入,以确保它们在磁盘上,但显然您不会丢失数据。

    关于file - 写入带有 rust 迹的文件时会写入多余的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66237485/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com