我正在编写一个代码,其中我从一个 CSV 文本文件中读取,该文件在命令行中作为参数给出。我必须计算给定文件的实验平均值:
例如,如果文件是
Bob's experiment,12,33,55,8
Mary's experiment,99,21,12,0
我必须打印出 Bob 的实验(数字的平均值) Mary 的实验(数字的平均值)
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include<string.h>
int main (int argc, char *argv[]){
FILE* ptr=fopen(argv[1], "rt");
int i=0;
double sum=0;
double count=0;
double ave=0;
if (ptr==NULL){
perror("Error while opening file");
exit(EXIT_FAILURE);
}
while(!feof(ptr)){
char s='a';
while(s!=','){
s=fgetc(ptr);
printf("%c", s);
}
while((char) *ptr)!='\n'){
fscanf(ptr, "%d", &i);
sum+=i;
count++;
}
ave=sum/count;
printf("%.2f", ave);
}
fclose(ptr);
}
}
我得到一个奇怪的无限循环类型的结果。请告诉我我做错了什么!
}