参考博文连接 最近做货位分配功能,用csv文件记录仓库货位的存储状态,0表示空,1表示占用,即不可用;系统每次先读取csv文件,记录货位信息状态,在得到最优货位分配方案之后,更新货位信息,即csv文件 具体改写操作流程可分为: 1)读取源文件并将字符串保存到vector1中; 2)根据最佳货位分配方案,标记需要改写的某行某列;如3行4列 3)将3行的字符串提取出来,将每列的内容加上逗号再存入另一个vector2,将第4列的数据由0变为1; 4)重复以上操作,全部更新完毕后,将vector1的内容再重新写入文件中 简单来说,整个过程可以看作是,将内容提取出来,放在一个容器中,改写容器中的内容,再将改后的内容写入原文件中,值得注意的由2点:一是要将写入的内容以逗号隔开,二是在改写过程中是将某行内容转化为vector,以边完成对指定列的改写 改写前的csv文件: 代码
#include
#include
#include
using namespace std;
void Correct(string& a, int col)
{
//cout
temp += ',';
}
tmp_store.push_back(temp);//将每列的内容加上逗号重新存入入vector
result = strtok_s(NULL, ",",&p);
}
tmp_store[col - 1] = new_Content + ',';//改写指定列的内容
for (int i = 0; i
string str_1;
string str_2;
ifstream rFile_1("文件名.csv", ios::in);
vectorContent_1;//存放文件中的内容
if (rFile_1.fail())
{
cout
int row = Parent.individualSet[ind].Gene[1][i];//最优解中货位对应csv文件中应修改的行数,根据解的内容分别需要改写3行1列的,4行1列的,1行3列,3行2列
int col= Parent.individualSet[ind].Gene[2][i];//最优解中货位对应csv文件中应修改的列数
//cout |