我希望将50行2列的文本文件放在一个有点冗长的文本文件中,让用户输入文件名并将其读入两个版本的数组中。文本文件是有组织的名称(包括逗号)和数字的组合
我可以让控制台显示文本文件本身,但是当我将数据存入数组时我会陷入困境。我试图设计一个涉及getline
和find
的循环代码,以便程序通过.txt排序,停在逗号并将该逗号前的每个字符记录到一个位置(即[0] [0])数组。我知道使用矢量会更容易,但我想用数组解决这个问题。
此外,还存在将名称(字符串)读入数组(int)的问题。
答案 0 :(得分:0)
请测试此代码:
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
#include <iterator>
template<typename Out>
void split(const std::string &s, char delim, Out result) {
std::stringstream ss;
ss.str(s);
std::string item;
while (std::getline(ss, item, delim)) {
*(result++) = item;
}
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, std::back_inserter(elems));
return elems;
}
int main()
{
std::ifstream file("test.txt", std::ios::binary);
std::string a, b;
int c;
std::vector<std::vector<std::string>> arr;
if (file)
{
while (file >> a )
{
std::vector<std::string> v = split(a, ',');
arr.push_back(v);
}
}
return 0;
}
my test.txt:
m,2
n,4
o,6
p,8
q,10