我正在尝试从文件读取值到C ++向量。该文件如下所示:
Object obj = parser.parse(new FileReader("\\testdata.json"));
我在python 3中有代码来读取文件并将值存储在列表中。
file f1.txt:
1.,2.
3.,4.
5.,6.
7.,8.
9.,10.
输出:
def main():
vec1=[]
vec2=[]
with open('f1.txt','r') as f1:
for line1 in f1:
a=(line1.strip()).split(sep=',')
vec1.append(float(a[0]))
vec2.append(float(a[1]))
print('First vercor : {0} \nSecond vector: {1}'.format(vec1,vec2))
#
if __name__=='__main__':
main()
我想要在C ++中导入First vercor : [1.0, 3.0, 5.0, 7.0, 9.0]
Second vector: [2.0, 4.0, 6.0, 8.0, 10.0]
或创建C ++代码来实现相同的目标。导入选项很复杂。我看了几个C ++示例,但无法像python代码一样有效(简短)。有人可以建议一种在C ++中实现这一目标的方法 - 特别是拆分字符串并将第一部分放入一个向量中,将第二部分放入另一个向量中吗?
编辑:
我在问题中明确提到我在C ++中寻找简短的方法:
vec1,vec2
。我看一下What's the best way to trim std::string?,剥离的C ++代码将比整个python程序更大。How can I read and parse CSV files in C++?等其他答案没有解决这些问题。
答案 0 :(得分:1)
float a, b;
char comma;
vector<float> vec1, vec2;
ifstream in("f1.txt");
while (in >> a >> comma >> b)
{
vec1.push_back(a);
vec2.push_back(b);
}
未经测试的代码,没有错误处理。