我目前有一个已自动协作到 txt 文件中的数据列表。目前我正在将它加载到一个缓冲区中,根据新行对其进行分段并将每一行添加到一个向量字符串中。目前的最终结果:我有一个字符串向量(已确认使用 cout)。
我的问题是,我将需要删除每个部分的各个部分,在某些情况下,出于格式化原因,剪切部分并移动它们,类似于数据库。
例如
1. Bernice Armstrong asd-ssdd 123123
2. Johnathan Potter asd-ssdd 123123
3. Kay Dixon asd-ssdd 123123
4. Melba Barton asd-ssdd 123123
5. Alison Malone asd-ssdd 123123
6. Mercedes Hale asd-ssdd 123123
7. Carolyn Rodriquez
asd-ssdd 123123
8. Norma Banks asd-ssdd 123123
9. Homer Burke asd-ssdd 123123
10. Mary Kelly asd-ssdd 123123
我需要剪切第 8 行并将其附加到 Carolyn Rodriquez 的末尾。我似乎在尝试使用矢量类执行字符串命令来测试大小时遇到困难。
vector<string> myvect;
//...
if(strlen(myvect[2])<16)
myvect.erase (i);
最终结果是一个 CSV 文件,每行都有名字和姓氏,仅此而已。我应该如何使用内置库来解决这个问题?我是在寻找正确的应用程序还是列表或其他方法更容易?
到目前为止我所拥有的:
int PostProcess(std::ofstream &file, char* pbuffer, size_t len)
{
char * buffer = pbuffer;
char tmp[160];
vector<string> data;
string line;
unsigned int initial = 0;
int count = 0;
//dynamically assign array of memory
for (unsigned int pos = 0; pos< len;pos++)
{
tmp[count] = *buffer;
if ((*buffer) == '\n')
{
tmp[count+1] = 0;
line = tmp;
data.push_back(line);
initial = pos;
}
if (count >= 150)
break;
buffer++;
count = pos - initial;
}
//debugger - shows all data in vector
for (std::vector<string>::const_iterator i = data.begin(); i != data.end(); ++i)
std::cout << *i << ' ';
//end debug code
buffer = pbuffer;
file << buffer;
return 0;
}