В C ++, как мне получить конкретную строку из текстового файла и сохранить ее в символьном векторе? - PullRequest
1 голос
/ 06 марта 2011

Я хочу, чтобы моя программа открывала текстовый файл, переходила к определенной строке (например, строка 18) и сохраняла каждый символ в этой строке в символьном векторе.

Я довольно новыйдля программирования в целом, так что это может быть не лучшим способом, но вот что я планирую сделать:

1) Получить конкретную строку и сохранить ее в строку

2) Преобразовать эту строку всимвол векторЯ использую вектор вместо массива, поэтому я могу использовать pushback (), чтобы сделать вектор точного размера, а не выделять слишком много или слишком мало в массиве.

Я могу отлично выполнить шаг 2, но с шагом 1 у меня проблемы.Как мне сделать так, чтобы он переходил на определенную строку?

1 Ответ

2 голосов
/ 06 марта 2011

Просто прочитайте все строки и игнорируйте те, которые вас не интересуют:

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

int main()
{
        std::ifstream file("file.ext");
        std::string line;
        unsigned int line_number(1);
        const unsigned int requested_line_number(4);
        while (std::getline(file, line))
        {
                if (line_number == requested_line_number)
                {
                        std::cout << line << "\n";
                }
                line_number++;
        }
}

Этот код, конечно, лишен обработки ошибок, и, естественно, вы не захотите жестко кодировать свой номер строки в большинстве случаев.время, но вы поняли.

Кроме того, я не очень понимаю, для чего предназначен вектор / массив символов.Используйте std::string для ваших нужд обработки строк, для этого она и предназначена.

...