я должен назвать свое имя, чтобы ввести свои ресурсы, как мне это сделать

CIN << название << епсИ;
cout >> «меня зовут» << название << епсИ;

-1

Решение

проблема

Когда ты сказал cin >> smthхочешь получить именно что-то, не более того. Маркер конца строки не является его частью, поэтому он не потребляется. Если у вас не будет специального типа для строки, но в стандартной библиотеке такого нет.

Когда вы используете getline Вы говорите, что хотите получить линию. Строка — это строка, которая заканчивается \nокончание является его неотъемлемой частью.

Так что проблема в том, что std::cin оставляет конец \n символ в буфере.


пример

std::cin >> smth;

+---+---+---+---+---+----+
|'H'|'e'|'l'|'l'|'o'|'\n'|      // In smth will be "Hello"+---+---+---+---+---+----+

+----+
|'\n'|                          // But new-line character stays in buffer
+----+

std::cin >> smth2;              // Its same like you would press just an 'enter', so smth2 is empty

Решение

  • использование std::cin.getline

или же

  • использование std::cin >> smth; + std::cin.ignore();
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector