Cin getline c что это
Функция Getline C++
Getline () используется для получения входной строки от пользователя в одной или нескольких строках до тех пор, пока не появится специальный символ (разделитель). Это предопределенная функция, которая использует библиотеку в программе, поскольку ее определение присутствует в файле заголовка библиотеки.
В этой статье будет объяснено множество основных примеров, объясняющих работу функции getline ().
Предварительное условие
Мы использовали версию Ubuntu 20.04; вы можете использовать последнюю версию. Для реализации вам понадобится текстовый редактор и доступ к терминалу Linux, потому что мы сможем видеть вывод исходных кодов на терминале через запрос.
Синтаксис функции getline ()
Функция getline () объясняется на основе параметров, которые используются внутри функции getline.
Теперь мы объясним каждый параметр этого синтаксиса один за другим.
Пример 1
В этом примере используется простой пример функции getline () в программе. В простых программах на C ++ нам нужна библиотека iostream в простых программах на C ++, но здесь, помимо этой библиотеки, мы использовали другую библиотеку, которая использует getline () в исходном коде C ++.
Подойдя к основной программе, здесь объявляется строковая переменная для приема строкового сообщения от пользователя. Когда мы выполняем код в терминале, пользователь увидит отображаемое сообщение, в котором система просит пользователя ввести строковое сообщение; это сообщение будет отображаться снова после некоторого шествия. Функция getline () примет предложение, введенное пользователем.
То же сообщение будет отображаться без каких-либо изменений. Мы внесем некоторые изменения после того, как значение будет введено в будущих примерах.
Сохраните код в файле с расширением C ++ / c.
Выполните команду в терминале Ubuntu. Для компиляции исходного кода нам понадобится компилятор. Для кода C ++ нам понадобится компилятор G ++ для компиляции кода.
После выполнения отображается сообщение; вам нужно ввести ваше сообщение. Чтобы система отображала вывод.
Теперь мы предлагаем тот же сценарий по-разному. Как мы знаем, как и функция getline, cin также используется для получения значения от пользователя. Но есть некоторые недостатки использования cin вместо функции getline или вместе с ней. Здесь мы использовали пример, в котором мы использовали cin вместо getline, чтобы увидеть эффект этого изменения. Все остальное то же самое. Например, библиотеки такие же. Вся программа написана внутри основной программы.
Теперь сохраните файл и запустите его в терминале Ubuntu. Когда мы компилируем код и затем выполняем его, система снова потребует от нас строковое сообщение. Мы напишем такую же строку. Используя клавишу «ENTER», вы увидите, что вся строка не отображается. Отображается только одна часть строки. Это потому, что «cin» принимает значение из всей строки, пока не найдет первый пробел. Это причина того, что выходная мощность меньше оригинальной. Чтобы принять всю строку, используйте функцию getline (). Скомпилируйте код и затем выполните его.
Пример 2
В предыдущем примере, как и в случае использования cin, мы ограничили значение. Но в «cin» это очевидно; значение всегда уменьшается до первого пробела в данной строке. Но в этом примере с помощью функции getline () мы ограничили значение в операторе ввода, применив особое условие. По заданному условию в программе мы предоставляем алфавит. При выполнении кода, когда этот алфавит появляется во всей строке впервые, компилятор перестает печатать всю строку, и фрагмент строки от начала до этого алфавита отображается на экране в качестве результирующего значения.
В этом примере вы можете видеть, что мы использовали «I» в функции getline () внутри исходного кода. Вы можете использовать любой другой алфавит по своему усмотрению.
Теперь, после компиляции, выполните код на терминале. Из полученного значения ясно, что мы использовали «I» во входной строке, поэтому алфавиты, которые идут перед этим алфавитом, будут отображаться как выходные.
Пример 3
В этом примере вместо использования алфавита для отображения критериев мы используем здесь порядковый номер. При этом компилятор получит желаемую запись в соответствии с порядковым номером. Номер индекса, указанный в функции, прекратит дальнейшую выборку записи. Например, мы использовали число «7», поэтому сообщение будет отображаться в позиции 6 в индексе.
В этом примере вы также увидите, что есть небольшое изменение в написании функции getline (). В предыдущем примере мы использовали cin внутри параметров getline. Но на этот раз мы использовали другую технику написания этой функции.
Когда мы выполним код, мы увидим, что мы ввели имя, состоящее из двух слов с пробелом между ними. Но подав заявку на участие в программе, мы увидим, что название отображается до 6 позиции индекса.
Пример 4
В этом примере будет отображаться строка, так что каждое слово будет отображаться на следующей строке. В этом примере используется новая библиотека вместо других, поскольку функция этой библиотеки уже включает потоковую передачу ввода / вывода. А также позволяет читать и писать в файл. Это также включает побитовое отображение значений строки. Дайте нам знать, чтобы понять пример. Одна переменная получает значение, предоставленное пользователем через функцию getline. Другая переменная помогает разделить слова в строке и переместить их на следующую строку.
После получения значения это значение затем делит значение и помещает его в другую переменную «x». для функции отображения; мы будем использовать здесь цикл while.
В соответствии с циклом значение будет печататься до тех пор, пока значение не будет указано в операторе. Тело цикла берет одно слово из полного предложения и разрезает его там, где пробел присутствует или стоит первым. Это условие задается в цикле.
Вы можете увидеть результирующее значение, выполнив код после компиляции.
Заключение
В этой статье показаны некоторые элементарные примеры, объясняющие концепцию функции getline (). Вы можете использовать операционную систему Linux для уточнения. Мы объяснили несколько примеров, чтобы объяснить работу этой функции. В каждом примере работа этой функции изображена по-разному.
Русские Блоги
Подробное объяснение cin, cin.get (), getline ()
Тест первый: abcd ( Enter) abcd (вывод) efgh (ввод) efgh (вывод) Если количество вводимых пользователем символов строки впервые меньше 4, программа выполняется нормально!
Тест два: abcdefgh (Enter) abcd ( (Вывод) (вывод строки) Когда число символов, введенных пользователем в первый раз, больше 4, первая строка принимает первые четыре символа ввода, а вторая операция ввода не выполняется, вторая строка Выход пуст. (Обнаружение суперлиги Getline, не будет выполнять Cin после)
ВАЖНО: Когда cin >> читает данные из буфера, если первый символ в буфере является разделителем пробела, табуляции или новой строки, cin >> будет игнорировать и очищать его, Продолжайте читать следующий символ, если буфер пуст, продолжайте ждать. Однако, если чтение прошло успешно, разделитель после символа остается в буфере, а cin >> не обрабатывается 。 ( понимание )
Примечание:
:
2、cin.get()
Функция имеет три формата: без параметров, один параметр, два параметра: cin.get (), cin.get (char ch), cin.get (array_name, Arsize) Чтение персонажей: Введите конечное условие: введите Обработка символов завершения пары ключей: Не сбрасывайте Enter в буфере 、 пробел и таб (важно) 。 cin.get () и cin.get (char ch) используются для чтения символов, и их использование аналогично, то есть: ch = cin.get () и cin.get (ch) эквивалентны.
cin.get(array_name, Arsize) Используется для чтения строки, может принимать пробелы, встречается Enter Завершить ввод, прочитать символы в соответствии с длиной (Arsize), будет Отменить последний ввод символа ( Важно, но не выбрасывайте ПРОБЕЛ и TAB ) 。
3、cin.getline()
4, функция ошибки cin
Механизм обработки ошибок cin, и изучите несколько важных функций: cin.fail (), cin.bad (), cin.good (), cin.clear (), cin.ignore () и т. Д.
ios :: badbit 001 В потоке ввода (вывода) произошла фатальная ошибка, которая необратима
ios :: eofbit 010 достиг конца файла
ios::failbit 100 Не фатальная ошибка во входном (выходном) потоке может быть исправлена
Соответствующая функция 1 or true if rdstate & XX bit is nonzero; otherwise 0。
Недостаточно сбросить флаг ошибки! Было бы хорошо, если бы оставшиеся данные в буфере могли быть очищены! Давайте посмотрим на очень важную функцию ниже!
Какая разница между cin и getline?
Какая разница между cin и scanf?
Здраствуйте. А какая разница между cin и scanf?
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с.
Объясните разницу между «cin.getline» и «std::getline»
string a; cin.getline(a); getline(cin, a);в чем разница между «cin.getline(a);» и «getline(cin.
Extract string from istream
Extracts a string from the input stream is storing its content in str. Any previous content of str is cleared.
This function overloads the global operator>> to behave as described in istream::operator>> but applied to string objects.
Notice that the istream extraction operations use whitespaces as separators, therefore this operation will only extract what can be considered a word from the stream. To extract entire lines of text, refer to the string overload of global function getline.
Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void.
Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get.
Какая Разница между сортировками?
Какая разница между сортировками, если в итоге все виды сортируют одинаково. Т е. Результат.
В чем разница между getline и cin
Содержание:
Ключевые области покрыты
1. Что такое getline
– Определение, Функциональность
2. Что такое Cin
– Определение, Функциональность
3. Отношения между getline и cin
– Описать ассоциацию
4. Разница между getline и cin
– Сравнение ключевых различий
Основные условия
Что такое getline
Рисунок 1: C ++ программа с getline
В приведенной выше программе имя является строкой. Оператор cout просит пользователя ввести его имя. Функция getline имеет два параметра: cin и name. Более того, cin является объектом класса istream. Он описывает источник чтения ввода. Имя является строковым объектом. Входные данные сохраняются в этом объекте после чтения из потока.
Что такое cin
Рисунок 2: C ++ программа с cin
В приведенной выше программе name является переменной типа char. Cout указывает пользователю, чтобы ввести имя. Когда пользователь вводит имя и нажимает клавишу ввода, оно сохраняется в имени переменной. Наконец, cout отображает имя на консоли.
Кроме того, программист может использовать оператор извлечения потока (>>) для получения большего количества пользовательских данных следующим образом.
cin >> name >> отметки;
Это похоже на следующее.
Отношения между getline и cin
Разница между getline и cin
Определение
getline () является стандартной библиотечной функцией в C ++ и используется для чтения строки или строки из входного потока, в то время как cin является объектом в C ++ класса istream, который принимает ввод от стандартного устройства ввода.
основа
параметры
Более того, getline принимает параметры, но в cin нет параметров. Таким образом, это еще одно различие между getline и cin.
Заключение
Рекомендации:
1. «Getline (String) в Си». GeeksforGeeks, 30 мая 2018 года,
Русские Блоги
Использование C ++ функции getline ()
Функция getline () является относительно распространенной
Первый: в есть две перегруженные формы функции getline ():
Функция такова: считывание до n символов (включая конечные теги) из istream и сохранение их в массиве, соответствующем s. Даже если вы не прочитали достаточно n символов,
Если встречается разделитель или число слов достигает предела, чтение прекращается, и разделитель не будет сохранен в массив, соответствующий s.
* Код изменен по ограничению слова и настройке терминатора
Второй тип: в есть четыре перегруженные формы функции getline:
istream& getline (istream&& is, string& str);
Использование аналогично предыдущему, но чтение istream передается в функцию в качестве параметра. Считанная строка сохраняется в строке типа string.
is: указывает входной поток, такой как cin.
str: ссылка типа String, используемая для хранения информации о потоке во входном потоке.
delim: переменная типа char, установленный символ усечения, без пользовательской настройки при обнаружении without \ n ’ввод прекращается.
(EOF предназначен для различения допустимых данных и входного терминатора на языке Си.
Вход EOF заблокирован системой. Это ctrl + z под windows и ctrl + d под linux / unix. )
(1) До конца файла, (2) Обнаружен разделитель функции, (3) Вход достигает максимума.
Функция getline () используется как условное суждение в while.
Вы обнаружите, что обычный ввод во время выполнения не может выпрыгнуть из цикла, и иногда могут возникать необъяснимые ошибки. Но что именно вызвало это? Давайте проанализируем это ниже:
Затем, когда мы вводим «Вы прекрасны! # Мистер Линг», но действительным является «Вы прекрасны!», Содержимое после # не сохраняется. Результаты выполнения программы следующие:
Если вы установите здесь «#» в качестве терминатора, это не повлияет на повторный ввод «\ n». Содержимое до # будет выводиться как обычно. Например:
// ввод: // ввод с помощью ‘\ n’
// Вывод: // Все еще вывод
Посредством небольшого примера функции getline (), что произойдет с функцией getline () как оператором while!
Просто проанализируйте время (getline (cin, line))
(Примечание. Здесь символ возврата каретки по умолчанию прекращает чтение. Нажмите Ctrl + Z (Windows) (Ctrl + D (Linux)) или введите EOF (см. MSDN), чтобы вернуться для выхода из цикла.
В этом предложении объектом истинного суждения предложения суждения while является состояние cin, то есть существует ли в настоящее время действительный входной поток.
Входной поток является объектом, и состояние, возвращаемое потоком, оценивается. Таким образом, при нормальных обстоятельствах, независимо от того, как вы печатаете, вы не можете выпрыгнуть из его цикла.
Среди них некоторые товарищи могут ошибочно думать, что объект суждения оператора while суждение является строкой (то есть является ли строка пустой).
Возврат каретки и установленный символ завершения завершают операцию чтения функции getline (). Но оператор while суждение оценивает, является ли входной поток функции getline () допустимым. Так!