go - 在 Go 语言中如何像 c/c++ 中的 freopen 一样从文件中逐步获取输入

标签 go

#include<stdio.h>

int main()
{
    freopen("in.txt", "r", stdin);

    int n, val, sum=0;
    scanf("%d", &n);

    for(int i=0; i<n; i++)
    {
        scanf("%d", &val);
        sum += val;
    }

    printf("%d\n", sum);  
}

输入(in.txt):

5
1 2 3 4 5

输出:

15

以上C语言程序会自动从in.txt文件中获取数据。我不需要在控制台中提供数据。

有没有办法用 GO 语言做到这一点?这样我就不需要手动提供大量数据或将其添加到代码中。

最佳答案

你不需要只从标准输入扫描,直接打开文件。

fmt 包有一系列 fmt.Fscan*为此的功能。

关于go - 在 Go 语言中如何像 c/c++ 中的 freopen 一样从文件中逐步获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256407/

相关文章:

docker - 无法从docker-machine(Virtual Box)上的docker图像运行Go(lang)应用程序

mysql - 使用 GORM 在 MySQL 中获取 NULL 日期时间值

Go fmt 为数学表达式生成格式不一致的结果

amazon-web-services - 将 Go 1.6 Web 应用程序部署到 AWS Elastic Beanstalk?

go - 解码在根级别没有键的元组

authentication - 是否有提供 jar 装用户身份验证支持的 Go 框架或包?

sql-server - 使用GORM从GOlang中的SQL处理多个结果集

go - go build 是什么意思? (去构建与去安装)

go - 如何将一种数字类型的 slice 转换为另一种类型

go - 如何通过 golang 上现有的 ssh 连接创建 sftp 客户端