我是靠谱客的博主 贪玩大侠,最近开发中收集的这篇文章主要介绍C++——统计.txt文件的行数和获得几行几列的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考链接:https://bbs.csdn.net/topics/391879459?list=26646347 

问题描述:

统计.txt文件的行数和获得几行几列的数据

例如文件数据如下:

问题解决:

(注:此代码是VS编译器实现的,在其他编译器请适当修改代码)

(对此traversal.cpp和main.cpp可以合并一个cpp文件)

头文件Test.h

#include <vector>
#include <string>

class CTest
{
public:
	CTest(void);
	~CTest(void);

	void readFile(const std::string& vFileName);
	std::vector<std::vector<std::string>> getData() { return m_Vec; }
	unsigned int getNum();

private:
	std::vector<std::vector<std::string>> m_Vec;
	unsigned int m_Num;
	unsigned int count = 0;
};

源文件traversal.cpp(其实任意文件名都可以)

#include "Test.h"
#include <fstream>

CTest::CTest()
{
	m_Num = 0;
}

CTest::~CTest()
{

}

void CTest::readFile(const std::string& vFileName)
{
	std::ifstream InFile(vFileName.c_str());

	if (InFile.is_open())
	{
		std::string LenStr;
		while (getline(InFile, LenStr))
		{			
			unsigned int Found = 0;
			int Pos = 0;
			std::vector<std::string> TempVec;
			for (unsigned int i=0; i<LenStr.length()/2; ++i)
			{
				Found = LenStr.find(' ',Pos);
				std::string TempData= LenStr.substr(Pos, Found-Pos);
				TempVec.push_back(TempData);
				Pos = Found +1;
			}	
			m_Vec.push_back(TempVec);
                        count++;
		}
		
	}
}

unsigned int CTest::getNum()
{
	return count;
}

main.cpp (其实任意文件名都可以)

#include "Test.h"
#include <iostream>

int main()
{
	CTest* Test = new CTest;
	Test->readFile("test.txt");
	std::vector<std::vector<std::string>> Vec;
	Vec = Test->getData();
	//显示第几行第几列数据
	std::cout << Vec[2][1] << std::endl;//如第三行第第二个数据
	//显示数据的个数
	std::cout << Test->getNum() << std::endl;
        system("pause");
	return 0;
}

运行效果

Ps

由于已获得文件行数和单个数据,就可以以行遍历整个文件,把某列存于一个数组注意:这里的Vec是string类型的,想要存放在double数组,可以把Vec类型由string,转换成double就可以了。

可将如下函数,放在main文件,就可以调用此函数把string转换成double,如:strDou(Vec[2][1])。

double strDou(string str) {	//string 转换 double
	char *ch = new char[0];
	double d;
	for (int i = 0; i != str.length(); i++)
		ch[i] = str[i];
	d = atof(ch);
	return d;
}

 

最后

以上就是贪玩大侠为你收集整理的C++——统计.txt文件的行数和获得几行几列的数据的全部内容,希望文章能够帮你解决C++——统计.txt文件的行数和获得几行几列的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部