Просто короткий вопрос, и я буду в пути. Почему я получаю ошибки, когда пытаюсь читать строку, используя класс string? Ошибка, которую я получаю: «no operator» >> «соответствует этим операндам/типам операндов: std :: istream >> std :: string *»Не удается прочитать строку из строкового класса
Я начинаю использовать класс вместо cStrings. К сожалению, я продолжаю получать ошибки, когда пытаюсь читать строку, используя cin. Например:
void ProcessEditMenuItems(int menu_choice, std::string fname[], std::string lname[],
std::string phone[], std::string bday[] /*char fname[][NAME_LENGTH], char lname[][NAME_LENGTH], char phone[][NAME_LENGTH],
char bday[][NAME_LENGTH]*/)
{
switch (menu_choice)
{
case 1:
std::cout << "\nEnter new first name: ";
std::cin >> fname;
break;
case 2:
std::cout << "\nEnter new last name: ";
std::cin >> lname;
break;
case 3:
std::cout << "\nEnter new phone number: ";
std::cin >> phone;
break;
case 4:
std::cout << "\nEnter new birthday: ";
std::cin >> bday;
break;
}
}
Приведенный выше код работает для нормальных cStrings, но когда я изменить объявление функции и определение класса строки она не работает.
Я думаю, вам нужно больше узнать. string - _something like_ a char array. поэтому 'string fname' будет _something_ как' char fname [19] '. поэтому нет необходимости использовать '[]' для использования строки в вашем случае. используйте 'string fname []', когда вам нужен массив строк !!! :) – Deamonpog
Мне нужен массив строк. Следовательно, почему я использовал строку fname []. Если вы посмотрите на код с комментариями, вы увидите, что я пытаюсь заменить char fname [] [NAME_LENGTH] - двухмерный массив. – MrPickle5
oh, тогда 'cin >> fname [i]' будет помещать вход в i-ое место массива fname. Вы не можете сделать 'cin >> fname', потому что fname не является строкой, а массивом строк. (operator '>>' из 'std :: cin' не знает, что делать, когда правая сторона оператора' >> 'представляет собой массив строк !!, поэтому он должен давать ошибку компиляции.) Еще вы необходимо работать над тем, как вы передаете параметры. Я предлагаю передать их в качестве указателей или ссылок. – Deamonpog