#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):51 2 3 4 5输出:15在 C 语言中,上述程序会自动从in.txt文件中获取数据。我不需要在控制台中提供数据。有没有办法用GO语言做到这一点?这样我就不需要手动提供大量数据或将其添加到代码中。
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
你的 C 程序只是一个一个地扫描令牌。当然,在 Go 中有很多方法可以实现这一点。我会推荐这个bufio包,但实际上你所需要的只是一个阅读器和一些将字符串转换为 int 的东西。下面是一个类似于您的 C 程序的示例。
import "bufio"
import "strconv"
file, err := os.Open("in.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
base := 0
if scanner.Scan() {
base += strconv.Atoi(scanner.Text())
}
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
base += strconv.Atoi(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
fmt.Println(base)
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消