从文件C ++中读取多个字符串

时间:2010-04-14 09:40:14

标签: c++ ifstream stringstream getline file-read

我需要逐个读取存储在文件中的不同值。所以我想我可以使用ifstream打开文件,但由于文件设置的方式是一行可能包含三个数字,另一行一个数字或两个数字我不确定如何逐个阅读每个数字。我在考虑使用stringstream,但我不确定这是否有用。

该文件是这样的格式。

52500.00       64029.50      56000.00
65500.00       
53780.00       77300.00     
44000.50       80100.20      90000.00      41000.00    
60500.50       72000.00

我需要阅读每个号码并将其存储在vector

实现这一目标的最佳方法是什么?即使每行包含不同数量的数字,也一次读取一个数字?

3 个答案:

答案 0 :(得分:6)

为什么不把它们作为文件中的数字来读?

double temp;
vector<double> vec;
ifstream myfile ("file.txt");

if (myfile.is_open()) {
  while ( myfile >> temp) {
    vec.push_back(temp);
  }
  myfile.close();
}

答案 1 :(得分:1)

如果您不关心数字的位置,我建议在istringstream之后使用getline

std::ifstream f("text.txt");
std::string line;
while (getline(f, line)) {
    std::istringstream iss(line);
    while(iss) {
        iss >> num1;
    }
}

答案 2 :(得分:0)

vector<double> v;
ifstream input ("filename");
for (double n; input >> n;) {
  v.push_back(n);
}