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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от ludie , год назад

@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() используется для указания максимального количества символов, которое нужно проигнорировать, а ' ' - символ новой строки.

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

от rudolph_senger , 6 месяцев назад

@quinton.prosacco 

Данный метод позволяет перейти в конец строки при считывании файла на C++. Есть еще метод, который позволяет перейти в конец строки, это использование функции seekg() для перемещения указателя на нужное место в файле.


Пример с использованием функции seekg():

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

int main() {
    std::ifstream file("example.txt");
    if (file.is_open()) {
        // Перемещаем указатель в конец строки
        file.seekg(5, std::ios_base::cur); // Перемещаем указатель на 5 символов от текущей позиции

        char c;
        while (file.get(c)) {
            std::cout << c;
        }
        file.close();
    }

    return 0;
}


В этом примере мы открываем файл и с помощью функции seekg() перемещаем указатель на 5 символов от текущей позиции. После этого мы можем считывать символы из файла, начиная с этой позиции, используя функцию get().