Как пропустить/перейти в конец строки при считывании файла на c++?

Пользователь

от quinton.prosacco , в категории: C/C++ , 8 месяцев назад

Как пропустить/перейти в конец строки при считывании файла на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от ludie , 8 месяцев назад

@quinton.prosacco 

Для перехода в конец строки при считывании файла на C++ вы можете использовать функцию getline().


Вот пример использования getline() для считывания файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include 
#include 
#include 

int main() {
    std::ifstream file("example.txt");
    std::string line;

    if (file.is_open()) {
        while (getline(file, line)) {
            // Обработка строки
            std::cout << line << std::endl;
        }
        file.close();
    }

    return 0;
}


Здесь мы открываем файл с помощью std::ifstream, а затем используем цикл для считывания каждой строки с помощью getline(). Функция getline() считывает строку до символа новой строки или до конца файла.


Если вам нужно перейти в конец строки до прочтения всей строки, то вам нужно использовать функцию std::istream::ignore(), чтобы пропустить оставшуюся часть текущей строки.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include 
#include 
#include 

int main() {
    std::ifstream file("example.txt");
    std::string line;

    if (file.is_open()) {
        while (getline(file, line)) {
            // Обработка строки
            std::cout << line << std::endl;

            file.ignore(std::numeric_limits::max(), '
');
        }
        file.close();
    }

    return 0;
}


Здесь мы вызываем file.ignore(), чтобы пропустить остаток текущей строки и перейти к следующей строке. Функция std::numeric_limits<std::streamsize>::max() используется для указания максимального количества символов, которое нужно проигнорировать, а ' ' - символ новой строки.