Итак, я вычислил среднее и стандартное отклонение от двойных значений, считанных внутри файла.Пользовательский ввод через терминал с входным файлом
Мои данные файл имеет 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'. –