C++从文件中读取数据存入数组,并计算数组长度

li18983233416 2015-12-20 02:25:59
比如有一列数据放在E:\\data.txt文件中,现在需用实现用C++读取这串数据,存放如数组中,并计算数组的长度
...全文
549 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_鹿鹿鹿 2015-12-20
  • 打赏
  • 举报
回复
昨天写的,应该可以给你用。 头文件
#pragma once
#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;
};

源文件
#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);
		}
		
	}
}

unsigned int CTest::getNum()
{
	for (unsigned int i=0; i<m_Vec.size(); ++i)
	{
		m_Num += m_Vec[i].size();
	}

	return m_Num;
}
main
#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[0][1] << std::endl;
	//显示数据的个数
	std::cout << Test->getNum() << std::endl;
	return 0;
}
li18983233416 2015-12-20
  • 打赏
  • 举报
回复
请给详细的代码,谢谢
paschen 版主 2015-12-20
  • 打赏
  • 举报
回复
文件中存的都是字符,可以读入按空格分割后转成相应格式存入数组
li18983233416 2015-12-20
  • 打赏
  • 举报
回复
一串字符可以么
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/8tuiz 在处理连续字符串时,系统将每个字符独立存储于数组;当使用在线评测系统(OJ)提交时,我注意到某些问题的输入格式为连续字符串;为了确保数据准确,我希望将这些字符串分解成单个字符,并分别存入数组的各个位置。 在C++编程,处理连续字符串并将每个字符单独存储到数组是一项基础且常用的操作。这一过程对于算法竞赛、数据处理以及文件输入输出等多种场合都非常重要。在某些特定的在线评测系统(OJ),需要将连续输入的字符串分解成单个字符,并将这些字符逐一存储于数组,以保证数据处理的准确性和高效性。 为了解决这一问题,开发者需要编写一个C++程序,该程序能够从控制台读取连续的字符串,并且确保每个字符都作为独立的元素存储在数组。编写这样的程序,首先需要使用标准输入流(通常是cin)来接收从控制台输入的字符串。随后,程序需要对这个字符串进行遍历,把每个字符依次存入数组的对应位置。这一过程,数组的索引会逐步递增,以指向下一个空的存储位置。 在编写这样的代码时,需要注意几个关键点。数组的大小需要预先定义好,或在运行时动态分配,以确保有足够空间存储所有字符。由于字符串是连续的,因此需要一个明确的标志或字符来表示字符串的结束,通常使用空字符('\0')来标识。这样的处理可以确保字符串在数组的表现和在内存的存储方式一致,即以空字符结尾的标准C字符串格式。 此外,如果需要处理多种不同的输入情况,还需要在代码加入适当的逻辑判断,以确保程序能够根据不同的输入要求作出响应。例如,在遇到特定的输入格式时,程序可能需要执行不同的操作。这可能包括读取不同长度的字符串、跳过某些字符或处理包含特定标记的字符串等。 当编写完这样的程序后,可以通过链接提供的源码下载方式进行分享,这样其他开发者或用户就可以下载

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧