gpt4 book ai didi

c - 通过从 C 中的文件中获取输入来求无限整数的总和

转载 作者:行者123 更新时间:2023-11-30 15:08:01 25 4
gpt4 key购买 nike

这里我的问题是计算从文​​件中获取输入的无限个整数的总和。该文件在由空格分隔的行中包含无限个整数。而且如果这些输入无效,我还需要显示无效的输入整数的输入包含任何其他字符或符号。我已经尝试过这段代码并输出良好这是我的代码......

void main()
{
int i=1,j,a[100000],total=0,r=0;
char discard,buffer[1024];
FILE *fp;
char filename[100];
scanf("%s",filename);
fp=fopen(filename,"r");
do
{
fscanf(fp,"%1024s%c",buffer,&discard);
r+=sscanf(buffer,"%d",&a[i]);
total+=a[i++];
} while(discard!='\n');
if(r==i-1)
{
printf("\n%d",total);
}
else
printf("\n Invalid Input");
}

代码执行得很好。但是这里的问题是代码超出了我的时间限制。请帮助我,以便我可以获得更好的代码

最佳答案

您可以分块读取文件,从而加快读取整数的速度。有关提示,请查看此链接中的 fread() 示例(例如在链接页面中搜索“sentinel”):How do I process a text file in C by chunks of lines?另外,请查看该答案的评论,例如进行 malloc 而不是堆栈分配的好主意,也许使用二进制模式,注意有关 EOF 等的评论。

关于c - 通过从 C 中的文件中获取输入来求无限整数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745794/

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