std :: ignore объяснение ошибок компилятора

0

Я использовал std :: ignore (1, ',') перед первой getline (iss, name, ',') и получил ошибку "ignore", которая не объявлена в этом пространстве имен "std".

        if (myfile.is_open()){
 98     while ( getline (myfile,line) ) {
 99         //parse line
100         string myText(line);
101         istringstream iss(myText);
102         if(!(iss>>id)) id=0;
103
104         std::ignore(iss,1,',');
105         std::getline(iss,name,',');
106         std::getline(iss,status,',');
107         std::getline(iss,email,',');
108         cout<<name<<endl;
109         Student newStudent(id,name,status,email);

Почему функции getline работают, но игнорирование не работает?

  • 2
    Вы пробовали читать документацию ? Это совсем не то, для чего используется std::ignore .
  • 0
    Я знаю, что я неправильно все вместе. Я просто пытался что-то увидеть, понял ли я это неправильно. Сначала я попробовал std :: ignore (1, ',') и получил ту же ошибку. Но ответ ниже - именно то, что мне было нужно. Документация не описывает это достаточно подробно, чтобы помочь мне полностью.
Показать ещё 1 комментарий
Теги:
parsing

1 ответ

5
Лучший ответ

ignore - это функция-член.

iss.ignore(1, ',');
  • 0
    Кстати, все, что ему действительно нужно, это iss.ignore() поскольку он хочет игнорировать только один символ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню