【发布时间】:2018-06-24 02:58:50
【问题描述】:
我想将每一行插入向量中。
我的文件如下所示:
问题是在 getline 中使用多个分隔符。 我的代码如下所示:
vector<int>czytajplik()
{
string line;
vector<string> text;
ifstream mojplik;
vector<vector<int>> zajecia;
mojplik.open("dane.txt");
if (mojplik.is_open())
{
while (getline(mojplik, line))
{
while (getline(mojplik, line, ' '))
{
text.push_back(line);
}
}
mojplik.close();
}
else cout << "Unable to open file" << endl;
vector<int> textnumery;
for (int i = 0; i <text.size(); i++)
{
int num = atoi(text.at(i).c_str());
textnumery.push_back(num);
}
return textnumery;
}
【问题讨论】:
-
欢迎来到stackoverflow。请澄清您的问题!
-
那些外来变量名肯定很烦人!但主要问题是这个问题看起来太像“调试我的代码”了。好吧,如果我仍然至少可以提供一点帮助,那么嵌套的两个 while 将不起作用(基本上,您将丢弃第一行,然后读取第二行的第一个数字,依此类推)。您可以实现(我假设)您想要的一种方法是使用 stringstreams:ideone.com/6Ct1U7 另一种方法是读取一个又一个字符并编写自己的自动机我猜,可能还有其他更简单的方法
-
您可以使用How can I read and parse CSV files in C++ 的解决方案,只需将逗号替换为空格即可。
标签: c++ vector std fstream getline