gpt4 book ai didi

C++将文件读入 vector

转载 作者:行者123 更新时间:2023-11-28 04:49:41 27 4
gpt4 key购买 nike

我正在尝试将文件中的值读取到 C++ vector 中。该文件如下所示:

file f1.txt:
1.,2.
3.,4.
5.,6.
7.,8.
9.,10.

我在 python 3 中有代码来读取文件并将值存储在列表中。

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()

输出:

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++ 中导入 vec1,vec2 或创建 C++ 代码来实现相同的目的。导入选项很复杂。我看了几个 C++ 示例,但无法像 python 代码那样有效(简短)。有人可以建议一种在 C++ 中实现此目的的方法 - 特别是拆分字符串并将第一部分放入一个 vector ,将第二部分放入另一个 vector 吗?

编辑:

我在问题中明确提到我正在寻找 C++ 中的简短方法,它将:

  • stip 读取行以删除任何前导和尾随字符,包括结束行 python strip() 可以做到这一点。我看了一下 What's the best way to trim std::string? ,剥离的C++代码会比整个python程序大。
  • 拆分结果字符串并将它们作为 float 放入两个 vector 中。

其他答案如How can I read and parse CSV files in C++?不要解决这些问题。

最佳答案

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);
}

未经测试的代码,没有错误处理。

关于C++将文件读入 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com