gpt4 book ai didi

c - 读取多个文件时停止读取(无 goto)

转载 作者:太空狗 更新时间:2023-10-29 15:13:48 25 4
gpt4 key购买 nike

我的文件只有一列全是数字,我想对所有文件求和。问题是一旦发现无效数据就能够退出(一旦 fprintf 失败)。

第一次尝试使用 goto(并受到 this answer 的启发)如下

while(1) {
sum_a = 0;
for(i=0 ; i<N ;i++){
if(fscanf(infiles[i], "%d\n", &a) != 1){
goto end; // yeah, I know...
}
sum_a += a;
}
printf("%d\n", sum_a); // Should NOT be read if anything failed before
}

end:
for(i=0 ; i<N ;i++)
fclose(infiles[i]);

我很高兴看到更好的解决方案(即不使用 gotowhile(1)!)。我不想以肮脏的方式设置和取消设置许多标志。

最佳答案

为什么?

这是 goto 的一个完全有效的用例。这是最具可读性的解决方案,并且可以完成工作。为什么要费心去改变它?

关于c - 读取多个文件时停止读取(无 goto),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com