Как мне прочитать текстовый файл из второй строки с помощью fstream?

Вы можете использовать функцию c++ игнорирования потока:

ifstream stream("filename.txt");

// Get and drop a line
stream.ignore ( std::numeric_limits::max(), '\n' );

// Get and store a line for processing.
// std::getline() has a third parameter the defaults to '\n' as the line
// delimiter.
std::string line;
std::getline(stream,line);

std::string word;
stream >> word; // Reads one space separated word from the stream.

Распространенная ошибка при чтении файла:

while( someStream.good() )  // !someStream.eof()
{
    getline( someStream, line );
    cout << line << endl;
}

Это fstream не удается, потому что: При fstream чтении последней строки не cpp читается маркер EOF. Таким fstream образом, поток по-прежнему cxx хорош, но в потоке больше fstream не осталось данных для чтения. Таким c++ образом, цикл повторяется. Затем cpp std::getline() пытается прочитать cxx другую строку из someStream c++ и терпит неудачу, но все c++ равно записывает строку в cpp std::cout.

Простое решение:

while( someStream ) // Same as someStream.good()
{
    getline( someStream, line );
    if (someStream) // streams when used in a boolean context are converted to a type that is usable in that context. If the stream is in a good state the object returned can be used as true
    {
        // Only write to cout if the getline did not fail.
        cout << line << endl;
    }
}

Правильное решение:

while(getline( someStream, line ))
{
    // Loop only entered if reading a line from somestream is OK.
    // Note: getline() returns a stream reference. This is automatically cast
    // to boolean for the test. streams have a cast to bool operator that checks
    // good()
    cout << line << endl;
}

c++

fstream

2022-09-26T00:13:56+00:00
Вопросы с похожей тематикой, как у вопроса:

Как мне прочитать текстовый файл из второй строки с помощью fstream?