【发布时间】:2017-12-04 02:51:17
【问题描述】:
如果我想逐行解析文件并将数据存储在单独的变量中,使用 getline 存储到字符串中并解析/转换为单独的变量似乎是一个很长的路要走。例如,对于“ABC a1 1 2 3”行,如果我想将前两个数据存储为字符串,其余三个数据存储为整数,那么从文件中逐行读取的有效方法是什么?相应地存储它?
【问题讨论】:
-
C++ 并不以拥有一堆快捷方式而著称,这些快捷方式使事情变得又快又容易。使用
std::getline(),然后解析每一行,是最轻松、最简单的方法。 stackoverflow.com 上充斥着无尽的、燃烧的残骸,这些残骸是由于尝试使用格式化提取>>运算符来处理面向行的输入而导致的。不要这样做。std::getline()是你的朋友。学习它。喜欢它。 -
老实说,在我看来,我认为您应该将其存储在
vector<string>中,然后使用它来解析个人strings:stackoverflow.com/q/32991193/2642059 但由于问题的模糊性,我不能保证这是正确的答案。 -
如果每一行都有相同的表示,
while(cin >> s1 >> s2 >> i1 >> i2 >> i3) save values;是一种方式。 -
上述方法效果最好。谢谢