C++逐行读取数据并保存至数组

读取文本文件数据,并保存至数组。如有必要对读取出来的每行数据按照特定字符进行分割,则可以配合《分割字符串》http://blog.csdn.net/hellokandy/article/details/51009473 一起使用。

#include <fstream>// std::ifstream
#include <iostream>// std::wcout
#include <vector>
#include <string>
using std::vector;
using std::wstring;

//
int read_file(vector<wstring> &data, wstring szFile)
{
	data.clear();
	//
	std::wifstream file_(szFile.c_str(), std::ios::in);
	//std::wifstream file_;
	//file_.open(szFile.c_str(), std::ios::in);

	const int bufsize = 512;
	wchar_t strbuf[bufsize];
	//
	while( !file_.eof() )
	{
		file_.getline(strbuf, bufsize);
		wstring sentence = strbuf;
		if (sentence.empty())
		{
			continue;
		}
		data.push_back(sentence);
	}
	file_.close();
	//
	if (data.size() < 1)
	{
		return -1;
	}
	return 0;
}

测试代码:

int main()
{
	vector<wstring> result;
	if (read_file(result, L"test.txt") == 0)
	{
		for (int i=0; i<result.size(); ++i)
		{
			std::wcout << result[i] << std::endl;
		}
	}
	system("pause");

	return 0;
}


你可能感兴趣的:(逐行读取数据)