Как прочесть отдельные части текстового файла в C++?

Есть текстовый файл такого вида (только строк гораздо больше):

XOeSnsGOvxc.jpg

Как прочитать из этого файла отдельные столбцы? (конкретно - 2,3 и 10)
  • Вопрос задан
  • 1531 просмотр
Пригласить эксперта
Ответы на вопрос 5
profesor08
@profesor08
Ну как-бы это простейшие операции со строками.

#include <fstream>
#include <string>
#include <iostream>

int main() 
{ 
    std::ifstream file("Read.txt");
    std::string str; 
     // это id первого символа второго столбца, если считать столбец с нумерацией первым, 
     // его надо будет подсчитать для каждой строки.
    int startOffset = 6;

    while (std::getline(file, str))
    {
        std::cout << "2: " << str.substr(startOffset + 11 * 0, 10);
        std::cout << " 3: " << str.substr(startOffset + 11 * 1, 10);
        std::cout << " 10: " << str.substr(startOffset + 11 * 8, 10);
        std::cout << std::endl;
    }
}
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Считывать построчно, парсить строку, брать нужные столбцы и работать с ними. Больше никак.
Ответ написан
Комментировать
скорее всего нужно парсить этот текс. Построчно читаешь его и как только встречаешь пробел в строке - закидываешь считанный кусочек (от предыдущего пробела) в отдельные массив. И так со всеми строками. В итоге получишь энное количество массивов, каждый из которых будет представлять собой столбец из твоего текста. Как вариант
Ответ написан
Комментировать
@asd111
Самый простой вариант.
while (std::getline (file,line)){
    //Для VC++ sscanf_s
    sscanf(line.c_str(),"%*s %x %x %*x %*x %*x %*x %*x %*x %x", &stolbec_2,&stolbec_3,&stolbec_10);    
}
Ответ написан
Комментировать
dummyman
@dummyman
диссидент-схизматик
не знаю, как вы, а я бы для таких целей использовал бы awk
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
30 нояб. 2024, в 22:41
500 руб./за проект
30 нояб. 2024, в 20:49
2000 руб./за проект
30 нояб. 2024, в 20:18
5000 руб./за проект