声明:
编译器:vs2017
所有用到的.txt文件都是提前放在当前工程目录下的。
完整测试代码:github–Zhaotiedan
方法一:针对可以提前知道存入数组的大小
1.从.txt文件中读取数据,并存入数组
#include <iostream>
#include <fstream>
#include<vector>
using namespace std;
int main()
{
//读取数据文件
ifstream in("datadata.txt", ios::in);
if (!in.is_open())
{
cout << "open error!" << endl;
exit(0);
}
//将数据文件数据存入数组
int i = 0;
vector<double> v1(N);
while (!in.eof() && i < N)
{
in >> v1[i];
i++;
}
return 0;
}
2.将数组数据写入.txt文件
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
ofstream outfile;
outfile.open("xiaoqun.txt", ios::in);//打开文件
//ios::in可替换
//ios::app,表示打开文件后,在写入的文件不会覆盖原文件中的内容,也就是原来文件中的数据会得到保存。
//ios::trunc,文件里面的内容会清零
//写入数据,av是存有double类型数据的一个数组,这里不展示具体定义
for (int i = 0; i < av.size(); i++)
{
outfile << i << " " << fixed << setprecision(8) << av[i] << endl;//fixed << setprecision(8)是为了保留小数点后8位进行写入
}
outfile.close();//关闭文件,保存文件。
return 0;
}
方法二:针对不知道存入数组的大小
这里只举例将文件.txt数据存入数组
int main()
{
vector<string> vv;
//读取1.in.txt文件数据
ifstream fin("1.in.txt");
if (!fin.is_open())
{
cout << "open error!" << endl;
}
//将数据存入vv数组(以字符串形式)
string temp;
while (getline(fin, temp))
{
vv.push_back(temp);
}
}
虽然存入结果是以字符形式,不过使用的时候转一下就可以了。