2016-03-08 2 views
-1
#include <fstream> 
#include <vector> 
#include <string> 

struct values { 
    int a,b,c,d; 
}; 

int main() { 
    std::ifstream myfile("myfile.txt"); 
    std::vector<values> vect; 

    // Format of text file is: 
    // sdasjkdh234sldaksdj23asd125as24dfs 
    // asdac5234sdf435ljk...35wsd63jj 
    // asdad234sdf35gg567dfg554ddd 


} 

Мне нужно создать вектор из файла, в котором каждая строка содержит четыре целых числа, скрытых между случайными символами, и помещает их в вектор структур, где каждое целое число сопоставляется с четырьмя полей в значениях структуры. Файл не имеет пробелов.Извлечь целые числа из файла, скрытого между случайными символами

Что такое самый простой способ сделать это?

+0

Прочитать файл строки за строкой и совместить целые числа с регулярным выражением. – knivil

+1

Заменить любой нецифровой символ пробелом и использовать 'std :: istream :: operator <<()'? – YSC

+0

Прочитайте блок данных из файла в память, проанализируйте память. Повторение. –

ответ

0
std::string line; 

while(getline(cin, line)) 
{ 
    auto s = std::remove_if(line.begin(), line.end(), [](auto& c) { return !isdigit(c); }); 
    line.erase(s, line.end()); 
    vect.push_back(std::stoi(line)); 
} 
+0

Хотите добавить какое-то объяснение? – maazza

+0

Не существует ли стандартное правило кодирования, которое говорит, что если код говорит точно, что он делает, вы не должны комментировать их? – Jts

Смежные вопросы