读取txt文档中的数据

j_jizhou 2015-07-15 04:09:30


有哪位大神知道这份txt文档的数据应该怎样读取?

要求:1、从第二行到第七行的2~5列数以浮点型读出存入二维数组中;

2、运用C++语言,请各位大神指教。
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
j_jizhou 2015-07-16
  • 打赏
  • 举报
回复
有没有一种方法:读取每一行到一个字符串,然后以空格爆开,存为字符串链表,最后转换数据类型,获取自己想要的数据@fly_dragon_fly @super_admi
j_jizhou 2015-07-16
  • 打赏
  • 举报
回复
知道啊,我测试了一下代码。跳过发现是文件名中文的原因。
super_admi 2015-07-16
  • 打赏
  • 举报
回复
给你一些示范代码: 代码1:

	inline static void split(
		IN const string& s_value, 
		IN const TCHAR& delim,
		OUT vector<string>& items
		)
	{
		stringstream stream(s_value);
		string item;
		while(std::getline(stream, item, delim))
		{
			items.push_back(trim(item));
		}
		stream.str(_T(""));
	}
代码2

	inline void load(
		IN const string& sPath
		)
	{
		fstream file;
		file.imbue(std::locale("chs"));
		file.open(sPath.c_str());
		string sSection;
		string sLine;
		map<wstring, wstring> mapLine;
		const TCHAR* szMarks = _T("#;");
		while(std::getline(file, sLine))
		{
			filt(sLine, szMarks);
			if(sLine.empty())
			{
				continue;
			}
			if(sLine[0] == _T('['))
			{
				string::size_type index = sLine.find_last_of(_T(']'));
				sSection = (string::npos == index ? sLine.substr(1) :sLine.substr(1, index - 1));
				continue;
			}
			vector<string> items;
			split(sLine, _T('='), items);
			string sKey = trim(items[0]);
			string sValue;
			if(items.size() > 1)
			{
				sValue = trim(items[1]);
			}
			setValue(sSection, sKey, sValue);
		}
		file.close();
	}
引用 5 楼 j_jizhou 的回复:
有没有一种方法:读取每一行到一个字符串,然后以空格爆开,存为字符串链表,最后转换数据类型,获取自己想要的数据@fly_dragon_fly @super_admi
super_admi 2015-07-16
  • 打赏
  • 举报
回复
当然可以啊。STL库中包含了从文件中读取一行文本以及split操作。
引用 5 楼 j_jizhou 的回复:
有没有一种方法:读取每一行到一个字符串,然后以空格爆开,存为字符串链表,最后转换数据类型,获取自己想要的数据@fly_dragon_fly @super_admi
super_admi 2015-07-15
  • 打赏
  • 举报
回复
人家只是给你一份演示代码,你若想省事,把那个test.txt改成绝对路径就是。
引用 2 楼 j_jizhou 的回复:
ifstream ifs("test.txt"); if(!ifs) return 0; 第二句直接跳过了,文件没有打开啊,这是什么原因?
j_jizhou 2015-07-15
  • 打赏
  • 举报
回复
ifstream ifs("test.txt"); if(!ifs) return 0; 第二句直接跳过了,文件没有打开啊,这是什么原因?
fly_dragon_fly 2015-07-15
  • 打赏
  • 举报
回复

ifstream ifs("test.txt");
    if(!ifs) return 0;
    string s;
    getline(ifs,s);
    int n;
    double dist,x,y,z;
    while(ifs>>n>>dist>>x>>y>>z){
        // add code
    }

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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