Я начал изучать cpp и столкнулся cin как способ получить ввод с клавиатуры. Если я понял, cin - это объект, а >> - оператор, определенный для него. Как он определяется, как он «знает», чтобы отделять слова друг от друга? и еще что-то, в чем смысл: while (cin) is cin a bool type? что это означает, если он возвращает true или false?cin object в cpp
ответ
Призвание:
cin >> var1 >> var2 >> var3;
эквивалентно:
cin >> var1;
cin >> var2;
cin >> var3;
Насколько идет ваш другой вопрос, в C/C ничего ++, который возвращает NULL
или ноль рассматривается как ложное в if
, иначе оно будет считаться истинным.
Именно поэтому линия: if(cin)
работает, чтобы проверить, есть ли больше данных для чтения в потоке. .
Ваше описание 'if (cin)' - не совсем вся правда. Нельзя ставить что-либо как условие; должен быть примитивным типом или иначе «конвертируемым» в один. В случае std :: istream, из которых std :: cin является экземпляром, это делается с помощью 'operator void *()'. Пока поток «хорошо», функция возвращает не-NULL, иначе возвращается NULL. – Lajnold
При использовании входного потока существуют определенные символы (символы), определенные для отдельных элементов на входе. По умолчанию я считаю, что это космический персонаж. Таким образом, вы можете вводить вещи, разделенные пробелами.
+1 потому что это объясняет, как cin «знает», как отделять слова от входного потока. – rturrado
Фактически, он использует любой символ пробела в качестве разделителя, который включает в себя пространство, новую строку, вкладку и многое другое. Но верно, что он останавливает текущее извлечение, когда встречается разделитель. – Lajnold
«Где STRM идентификатор объекта IStream и переменная является объектом любого типа, поддерживаемого в качестве правого параметра можно также назвать последовательность операций экстракции, как:
strm >> variable1 >> variable2 >> variable3; //...
, который является таким же, как выполняя последовательные экстракции из того же самого объекта STRM»-> от operator>>
- 1. Компиляция файла .cpp с .o (object file)
- 2. CIN CIN cin случайно пропускает
- 3. строка арифметики в cpp
- 4. Функция флеша в cpp
- 5. инстанцирование нового объекта в CPP
- 6. Функции в другом .cpp-файле
- 7. странная область видимости в cpp
- 8. cpp: как вызвать другой файл cpp .exe в программе cpp
- 9. CPP - Включая файлы .h и .cpp файлы в .cpp-файл
- 10. Python встроен в CPP: как вернуть данные в CPP
- 11. Использование cin AFTER getline (cin, string)
- 12. cpp двухмерный динамический массив
- 13. Указатель с проблемой внедрения cin
- 14. Перенаправить cin в строку
- 15. Ввод строки в 'cin'
- 16. Как выполнить файл cpp в файле cpp?
- 17. CPP - поведение переменных недоразумений
- 18. c векторный вид отдельного файла .h .cpp
- 19. Могу ли я перенаправить ifstream в cin?
- 20. `Команда завершена` при использовании` cin`
- 21. C++ Проблема ввода cin
- 22. Разрыв Cpp-петли с "|"
- 23. Указатель сфера в связный список функций CPP
- 24. Как использовать массив заголовков в cpp?
- 25. CPP-Square Hollow-Какая ошибка?
- 26. Cpp Удалить память
- 27. редирект CIN строку в C++
- 28. Понимание поведения cin в C++
- 29. Игнорирование запятые в C++ CIN
- 30. строки cin в вектор (C++)
„в пути он определен, как она „знает“, чтобы отделить слова друг от друга“? Непонятно, что вы здесь просите. –