我正在尝试从与 Unix 平台上的当前目录不同的目录中读取文本文件“P1-Data”,并创建 GPA 数组以使用 C 语言计算平均 GPA。
这是名为“P1-Data”的文本文件:
Mark Bhatia 852600012 3.23
Larry Burch 123236399 2.94
Howard Huge 234123456 3.00
# Andrew Jackson 123321123 4.00
Lee David 666656666 3.02
Norden Bruce 432156978 3.75
Price Jones 121256435 2.75
Rountree Travis 123123132 2.89
Volek Volek 101100100 3.05
# Fine Students 000000121 4.0
John Bhatia 952600012 3.93
Jangla House 123457890 2.03
# Tee David 666656667 3.42
# Moriarty Hodges 898888999 2.04
Wonder Druce 332156978 3.78
Price Hones 121256435 2.75
Flattree Travis 123123134 3.95
Drew Pete 101100101 3.05
它位于目录:home/.../class1/.../.../P1-DATA
这是名为“stage1.c”的 C 代码,它给了我错误(用 Notepad++ 编写):
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[]){
int i = 0;
float sum = 0.00, n = 0.00, avg = 0.00;
FILE *fin;
fin = fopen("P1-DATA", "r");
// Keep reading in integers (which are placed into "n") until end of file (EOF)
while(fscanf(fin, "%lf", &n) != EOF){
// Add number to sum
sum += n;
// Increment counter for number of numbers read
i++;
// Average is sum of numbers divided by numbers read
avg = (sum / i);
}
// After the loop is done, show the average
printf("The average is %lf.\n", avg);
fclose(fin);
return 0;
}
这位于目录:home/.../class2/s/name/.../stage.c(主要点不同的目录)
我还注意到,我在尝试打开的文件名中放入什么并不重要。我仍然遇到分段错误。所以我想在那之前我错过了一些东西。也许我需要切换到“P1-DATA”文件所在的目录??如果是这样..我不确定如何在 C 中做到这一点。任何帮助将不胜感激。另外,我的日程安排有点紧……这只是我需要做的第一部分。提前致谢!