Как пропустить строку из инфиле - PullRequest
1 голос
/ 02 мая 2019

У меня есть этот код, который позволяет пользователю загружать входной файл (опция 1), отображать содержимое входного файла (опция 2), и у них есть возможность выйти (опция 3).Есть ли способ, которым я могу пропустить первую строку входного файла от ухаживания?

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;

int main ()
{ char selection = ' ';
  char fileName[25];
  ifstream file;
  string line;

cout<< "Choose an action"<<endl;
string myMenu[3]={" 1 - Load An Exam ", " 2 - Display Exam ", " 3 - Quit " };
    for (int i=0; i<3; i++)
            {   cout<<myMenu[i]<<endl;}
            cin>>selection;

    switch(selection)   

{
    case '1': 
    cout<<"Please enter  the file name"<<endl;
    cin>>fileName,25;
    file.open(fileName);

    if (file.fail())
    {cout<<"Unable to open file"<<endl; 
     cout<<"Please enter the file name"<<endl;
    cin>>fileName,25;
    file.open(fileName); }



     break;

    case '2':
    if (file.good())
    { 
     while (getline(file, line))
    {cout<<line<<"\n";}
        file.close();
    }
    else cout<<"Unable to open file";
    break;   
    case '3':
        cout<<"Thank you!"<<endl;
    break;

 }

1 Ответ

0 голосов
/ 03 мая 2019

Просто продолжайте внутри цикла while. Это перезапустит функцию getLine, которая переместит указатель на 1 строку вперед.

while (getline(file, line))
{
    if ( skipLineCondition ) { continue; }

    cout<<line<<"\n";
}

Также, пожалуйста, постите лучше отформатированный код. Мы здесь, чтобы помочь, но вы должны сосредоточить больше усилий на том, чтобы всем было легко помочь вам.

...