所以我計算了文件中讀取的雙值的平均值和標準偏差。通過終端輸入文件的用戶輸入
我的文件數據具有每行1號:我的文件中的數據是以下
1
2
3
4
5
6
7
8
9
10
我的代碼是下面:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
FILE *inputfile= fopen("file.dat.txt", "r");
if (inputfile == NULL)
{
printf("Failed to open text file.\n");
exit(1);
}
double i;
double j=1;
double average;
double stdish=0;
double stdreal=0;
double x=0;
double sum=0;
double stdfinal;
while(fscanf(inputfile, "%lf", &i) != EOF){
x=x+1;
sum = sum + i;
j = i*i;
stdreal +=j;
}
average = sum/x;
stdish = (stdreal/x)-(average*average);
stdfinal = sqrt(stdish);
printf("The average is %.4lf\n", average);
printf("The standard deviation is %.4lf\n", stdfinal);
fclose(inputfile);
return 0;
}
我通過終端運行此。 我的數據文件是file.dat.txt。我想要做的是讓用戶通過終端輸入文本文件,而不是在程序中輸入。
像這樣:./sdev < file.dat
我不完全知道如何在我的計劃實現這個...
謝謝!
您從'stdin'而不是'inputfile'中讀取。 – 2014-02-09 10:58:26