Чтение нескольких строк из файла C ++ - PullRequest
1 голос
/ 14 апреля 2010

Мне нужно прочитать разные значения, хранящиеся в файле по одному. Поэтому я подумал, что могу использовать 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 ]

6 голосов
/ 14 апреля 2010

Почему бы не прочитать их как числа из файла?

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

if (myfile.is_open()) {
  while ( myfile >> temp) {
    vec.push_back(temp);
  }
  myfile.close();
}
1 голос
/ 14 апреля 2010

Если вас не интересует положение номеров, я предлагаю использовать istringstream после getline :

std::ifstream f("text.txt");
std::string line;
while (getline(f, line)) {
    std::istringstream iss(line);
    while(iss) {
        iss >> num1;
    }
}
0 голосов
/ 14 апреля 2010
vector<double> v;
ifstream input ("filename");
for (double n; input >> n;) {
  v.push_back(n);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...