我是新手,我想知道,如何在golang的txt文件中为我的代码编写循环的输出
package main
import (
"fmt"
"log"
"os"
)
func main() {
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("%d ", i)
file, err := os.Create("result.txt")
if err != nil {
log.Fatal("Cannot create file", err)
}
defer file.Close()
fmt.Fprintf(file, " x equal to %d", i)
}
}
但是我得到9而不是1 3 5 7 9 那么如何解决这个问题
答案 0 :(得分:2)
问题是您在循环的每个迭代中都在重新创建文件,这就是为什么文件中唯一的值是您在循环中写入的最后一个值。
尝试以下
package main
import (
"fmt"
"log"
"os"
)
func main() {
file, err := os.Create("result.txt")
if err != nil {
log.Fatal("Cannot create file", err)
}
defer file.Close()
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("%d ", i)
fmt.Fprintf(file, " x equal to %d", i)
}
}