go - 相当于 Go 中的 freopen

标签 go stdout stdin freopen

在 C 语言中,我可以使用 scanfprintf 来读取和写入文件,方法如下:

freopen ("input.txt", "r", stdin);
freopen ("output.txt", "w", stdout);

在 Java 中你可以用

System.setIn

还有 friend 。

如果您需要经常在使用文件和 stdin/stdout 之间切换,并且要使您的代码不受文件指针的影响,这将非常方便。

Go 有类似的东西吗?

最佳答案

您可以分配给 os.Stdinos.Stdoutos.Stderr

import "os"

os.Stdin, err = os.OpenFile("input.txt",
    os.RDONLY | os.O_CREATE, 0666)
os.Stdout, err = os.OpenFile("output.txt",
    os.O_WRONLY | os.O_CREATE | os.O_TRUNC, 0666)

关于go - 相当于 Go 中的 freopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24491325/

相关文章:

python - 为什么低于 0.25 的 time() 会跳过 Python 中的动画?

Python从其他源连续读取stdin

go - 使用额外参数实现分段文件上传

c++ - 捕获标准输出到 zip 并使用 CTRL-C 中断会产生损坏的 zip 文件

oop - 同一结构的多个接口(interface)

c - 从已执行的应用程序获取标准输出

regex - Perl - 收集所有 STDIN 直到空行或 EOF

c - 使用 fread() 通过文件和标准输入解析数据

go - 是否在匿名结构中导出字段有什么区别吗?

sql - 在 Go 模板中打印 sql.NullString 的值