c++如何将txt文件读入二维数组

代码功能描述:从txt文件中读取数据,并保存在二维数组中,还可以设置发射频率

#include "pch.h"
#include
#include
#include
#include
#include 
#include 
#include
#include 

using namespace std;
int CountLines(char *filename)//获取文件的行数
{
	ifstream ReadFile;
	int n = 0;
	string temp;
	ReadFile.open(filename, ios::in);//ios::in 表示以只读的方式读取文件
	if (ReadFile.fail())//文件打开失败:返回0
	{
		return 0;
	}
	else//文件存在,返回文件行数
	{
		while (getline(ReadFile, temp))
		{
			n++;
		}
		return n;
	}
	ReadFile.close();
}

int CountColumns(const char * fileName) {
	ifstream fileStream;
	fileStream.open(fileName, std::ios::_Nocreate);

	double tmp = 0;
	int count = 0;	// 列数计数器	
	char c;			//当前位置的字符
	c = fileStream.peek();
	while (('\n' != c) && (!fileStream.eof()))	// 指针指向的当前字符,仅观测,不移动指针位置
	{
		fileStream >> tmp;
		++count;
		c = fileStream.peek();
	}

	fileStream.close();
	return count;
}

int main()
{
	char filename[512] = "D:\\point.txt";  //输入文件路径、名称
	int row = CountLines(filename);
	int line = CountColumns(filename);
	std::vector > V;// 二位数据组
	std::vector one_row;		//行向量
	std::vector::iterator it;	//迭代器
	std::ifstream ifstr_data(filename);	//读文件
	double d;							//传值中间值	
	int row_count = 0;					//换行标记
	int line_count = 0;					//列标记
	double data[1070][3];
	for (line_count = 0; line_count < row; line_count++)
	{
		for (row_count = 0; row_count < line; row_count++)
		{
			ifstr_data >> d;
			one_row.push_back(d);//将数据压入堆栈。
		}
		V.push_back(one_row);
	}
	ifstr_data.close();
	int i=0,i1=0,j;
	int frequent = 20; //设置发射频率,几行/秒
	double start, stop, stop1, durationTime, time_delay;  
	while (i < V.size()-1)
	{
		
		start = clock();
		for (i = i1; i 

你可能感兴趣的:(实用代码总结)