Выражение должно быть модифицируемым l-значением - PullRequest
0 голосов
/ 26 марта 2020

Я писал простую базу данных на C ++, используя свои базовые c навыки объектного программирования, и я столкнулся с проблемой, с которой я не знаю, как справиться. В одном из моих методов я пытаюсь проверить правильность формата ввода, предоставленного пользователем. Для этого мне нужно знать, какова длина входной строки. К сожалению вылезает ошибка, что выражение имеет для меня модифицируемое l-значение. Я искал ответ, но я действительно не понимал решения. Не могли бы вы, с точки зрения непрофессионала, объяснить мне, что я сделал не так? Спасибо!

Структура класса, с которым я работаю:

class Item
{
  public:
  void checkPNA()
  {
    if ((pna.length() = !6)||(pna[2]=!"-"))
    {
        cout<<endl<< "Niepoprawny format kody pocztowego! Poprawny format: \"00-000\". Spróbuj ponownie: ";
    }
  }
  string nazwisko, imie, ulica, pna, miasto, attrib;
  int id, len;
};

1 Ответ

2 голосов
/ 26 марта 2020

Простые синтаксические ошибки, это != не = ! или =! и '-' не "-" для символа.

if ((pna.length() = !6)||(pna[2]=!"-"))

должно быть

if ((pna.length() != 6) || (pna[2] != '-'))

Вам также не нужны все эти скобки

if (pna.length() != 6 || pna[2] != '-')

, на мой взгляд, легче читать.

...