#include <iostream>
#include <sys/types.h>
#include <dirent.h>
#include <fstream>
#include <string>
#include <sstream>
int main()
{
//读取txt
vector<string> file_name;
string path = "/home/mytxt/Sonar_data";
//读取文件名称
DIR *pDir;
struct dirent* ptr;
if(!(pDir = opendir(path.c_str())))
return 0;
while((ptr = readdir(pDir))!=0) {
if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0)
file_name.push_back(path+"/"+ptr->d_name); //文件路径被返回到file_name的vector中
}
closedir(pDir);
//读取每个txt文件数据,并计算平均值
for (int i = 0; i < file_name.size(); i++)
{
float avm = 0.0;
cout << file_name[i] << endl; //输出文件名
//读取txt,算值
const char *filename = file_name[i].c_str();
ifstream in(filename); //打开这个txt文档
string dtext[40]; //我的txt文档每个有40个数据,一半为string,一半为float,一对一个排列
for (int k = 0; k < 40; k++)
in >> dtext[k]; //把数据输入到dtext中
for (int mm = 0; mm < 40; mm = mm + 2)
{ //m+2是为了跳过我的数据中的string类型
// cout << dtext[mm] << " " << mm << endl;
istringstream iss(dtext[mm]);
float trans;
iss >> trans; //把string类型读取的数据转为float
avm = avm + trans; //求和
}
float sum_avm=avm/20;
cout<<"第"<<i<<"个txt文件的平均值为"<<sum_avm<<endl;
in.close(); //关闭流
}
}
c++读取文件夹下的多个txt.文件并计算每个txt数据的平均值
最新推荐文章于 2023-09-16 09:37:52 发布