C++, имеющий cin, считал символ возврата

Вы можете использовать метод Ruby # source_location http://ruby-doc.org/core-2.5.1/Method.html#method-i-source_location Вы можете использовать его с binding.pry как Стефан предложил или просто распечатал результат #source_location перед тем, как вызывать конкретный метод (так что вы можете быть уверены, что область действия такая же).

12
задан Mateen Ulhaq 13 December 2011 в 03:48
поделиться

4 ответа

Вы, вероятно, захотите попробовать std::getline:

#include <iostream>
#include <string>

std::string line;
std::getline( std::cin, line );
if( line.empty() ) ...
15
ответ дан 2 December 2019 в 06:28
поделиться

Попытайтесь освободить буфер cin (он буферизуется по умолчанию).

0
ответ дан 2 December 2019 в 06:28
поделиться

cin.getline решает Вашу проблему?

2
ответ дан 2 December 2019 в 06:28
поделиться

Я нахожу это для ввода данных пользователем std::getline работы очень хорошо.

Можно использовать его, чтобы считать строку и просто отбросить то, что это читает.

Проблема с выполнением вещей как это,

// Read a number:
std::cout << "Enter a number:";
std::cin >> my_double;

std::count << "Hit enter to continue:";
std::cin >> throwaway_char;
// Hmmmm, does this work?

это, если пользователь вводит другой мусор, например, "4.5 - об" этом слишком легко выйти из синхронизации и считать то, что пользователь записал в прошлый раз прежде, чем распечатать подсказку, которую он должен видеть в следующий раз.

Если Вы читаете каждую полную строку с std::getline( std::cin, a_string ) и затем проанализируйте возвращаемую строку (например, использование istringstream или другой техники), намного легче сохранить печатные подсказки в синхронизации с чтением из станд.:: cin, даже перед лицом искаженного входа.

5
ответ дан 2 December 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: