Я начинающий
Я использую с программным обеспечением CORSIKA. Выходные данные cosika — это текстовые файлы с 8 или 7 столбцами и более 2000 строк (например, матрицы).
Массивы этой матрицы являются номерами в научной нотации, как следующие изображения
2.11285E+05 2.00000E+01 1.30714E+05 7.35000E+00 1.00000E+00 1.10000E+04 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 -2.70000E+00 1.00000E+03 1.00000E+03 1.00000E+00 1.00000E+00 3.00000E-01
3.00000E-01 3.00000E-03 3.00000E-03 6.37132E+08 6.00000E+05 2.00000E+06 0.00000E+00
0.00000E+00 4.58060E-02 5.73090E-01 5.28304E-02 2.50000E+00 2.07000E+00 8.20000E+00
1.00000E-01 0.00000E+00 0.00000E+00 1.00002E+00 9.67266E-03 1.00000E+00 5.75129E-04
0.00000E+00 0.00000E+00 3.77000E+01 1.53287E-04 9.38642E+00 2.00000E-03 2.99792E+10
Я хочу прочитать данные в 7-м столбце и вычислить некоторые параметры, такие как среднее, максимальное, минимальное в одном столбце.
У меня есть этот код для чтения и отображения текстового файла, но я не знаю, как использовать числа и рассчитать некоторые параметры.
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
int main()
{
FILE *k;
char c;
k = fopen("c:\\fff.txt", "r");
c = getc(k);
while(c != EOF)
{
cout << c;
c = getc(k);
}
getch();
fclose(k);
return 0;
}
Помогите мне, пожалуйста.
Спасибо
Попробуй это:
#include <iostream>
#include <string>
#include <sstream>
int main()
{
std::string line;
std::istringstream iss;
while (std::getline(file >> std::ws, line))
{
float f;
iss.str(line);
while (iss >> f)
;
// f is equal to the 7th row by this line
}
}
В зависимости от ваших потребностей, f
может быть локальным для области цикла while или иным образом.
Других решений пока нет …