Ошибка компиляции при использовании getline (): «несоответствующие типы» - PullRequest
0 голосов
/ 23 декабря 2018

Я получаю эту ошибку (она очень длинная, но я думаю, что самая важная часть заключается в следующем):

main.cpp:9:30: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>' and 'const char [2]'

При компиляции этого бита кода:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string x = getline(cin, " ");
    return 0;
}

Строки в ошибке не будут совпадать со строками в коде, который я привел здесь, потому что я не знаю, как создать новую строку при написании кода в редакторе переполнения стека;Я новичок здесь;) В любом случае, ошибка указывает на строку с объявлением string x.

В основном, я хочу, чтобы этот код делал, чтобы получить строку от пользователя, пока он / она не нажметпространство.Возможно, я делаю что-то не так с самого начала, поэтому я открыт для предложений по устранению этой проблемы.(Я не очень опытен в C ++, просто мой учитель должен был выполнить задачу, используя этот язык.) Спасибо,

Энтони

1 Ответ

0 голосов
/ 23 декабря 2018

Второй параметр std::getline() является ссылкой на переменную std::string, которая принимает считанные данные.Строка не выводится в возвращаемом значении функции.

Кроме того, std::getline() не принимает строку для разделителя.Требуется только один символ.

Попробуйте вместо этого:

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

int main() {
    string x;
    getline(cin, x, ' ');
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...