但是当我打开 h.txt 文件时,什么也没写
如何解决此问题并将数字写入 h.txt 文件?
package main
import "os"
func main() {
for i := 0; i < 10; i++ { // Generating...
f, _ := os.Create("h.txt") // creating...
f.WriteString(string(i)) // writing...
defer f.Close()
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
您的代码存在一些问题。
1)您多次打开文件,每次循环迭代;os.Create如果文件已经存在,将截断文件,因此您可能会在每次迭代时编写和截断它。
2)您没有检查文件是否正确打开而没有错误
3)defer安排代码在函数结束时运行,而不是在作用域结束时运行。(即在迭代结束时)
4)您应该正确转换整数,使用转换并检查错误:_, err := f.WriteString(fmt.Sprintf("%d",i)),然后检查错误。
尝试这个:
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.Create("h.txt") // creating...
if err != nil {
fmt.Printf("error creating file: %v", err)
return
}
defer f.Close()
for i := 0; i < 10; i++ { // Generating...
_, err = f.WriteString(fmt.Sprintf("%d\n", i)) // writing...
if err != nil {
fmt.Printf("error writing string: %v", err)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5437 次 |
| 最近记录: |