Что такое getline в c

std:: getline

Compiler support
Freestanding and hosted
Language
Standard library headers
Named requirements
Feature test macros (C++20)
Language support library
Concepts library (C++20)
Diagnostics library
General utilities library
Strings library
Containers library
Iterators library
Ranges library (C++20)
Algorithms library
Numerics library
Localizations library
Input/output library
Filesystem library (C++17)
Regular expressions library (C++11)
Atomic operations library (C++11)
Thread support library (C++11)
Technical specifications
Symbols index
External libraries

std:: basic_istream CharT,Traits > & getline ( std:: basic_istream CharT,Traits > & input,
std:: basic_string CharT,Traits,Allocator > & str,

std:: basic_istream CharT,Traits > & getline ( std:: basic_istream CharT,Traits > && input,
std:: basic_string CharT,Traits,Allocator > & str,

getline reads characters from an input stream and places them into a string:

Contents

[edit] Parameters

inputthe stream to get data from
strthe string to put the data into
delimthe delimiter character

[edit] Return value

[edit] Notes

When consuming whitespace-delimited input (e.g. int n ; std:: cin >> n ; ) any whitespace that follows, including a newline character, will be left on the input stream. Then when switching to line-oriented input, the first line retrieved with getline will be just that whitespace. In the likely case that this is unwanted behaviour, possible solutions include:

[edit] Example

The following example demonstrates how to use getline function to read user’s input and how to process file line by line.

Источник

Функции-члены потока ввода

Функции — члены потока ввода используются для дисковых операций ввода.

Если используется входной поток файлов ( ifstream ), необходимо связать этот поток с конкретным файлом диска. Это можно сделать в конструкторе или можно использовать open функцию. В любом случае аргументы одни и те же.

Чтобы прочитать файл, сначала используйте функцию- fail член, чтобы определить, существует ли она:

Неформатированная get функция элемента работает как >> оператор с двумя исключениями. Во-первых, get функция включает пробелы, в то время как средство извлечения исключает пробелы при skipws установке флага (по умолчанию). Во-вторых, эта get функция менее вероятно приведет к тому, что связанный поток вывода ( cout например,) будет сброшен.

Вариант get функции указывает адрес буфера и максимальное число считываемых символов. Это полезно для ограничения количества символов, отправленных в конкретную переменную, как показано в примере:

Входные данные

Пример выходных данных

getline

getline Функция-член аналогична get функции. Обе функции допускают третий аргумент, который указывает завершающий символ для входных данных. Значение по умолчанию — символ новой строки. Обе функции резервируют один символ для необходимого завершающего символа. Однако get оставляет завершающий символ в потоке и getline удаляет завершающий символ.

В следующем примере задается завершающий символ для потока ввода:

Входные данные

чтение

Этот пример считывает двоичную запись из файла заработной платы в структуру:

Программа предполагает, что записи данных форматируются точно так же, как указано в структуре, без завершающего возврата каретки или символов перевода строки.

функции seekg и tellg

Чтобы использовать seekg для реализации систем управления данными, ориентированных на записи, умножьте размер записи фиксированной длины на номер записи, чтобы получить координату байта относительно конца файла, а затем используйте get объект для чтения записи.

close

close Функция члена закрывает файл диска, связанный с входным файлом потока, и освобождает файл операционной системы. ifstream Деструктор закрывает файл, но функцию можно использовать, close Если необходимо открыть другой файл для того же объекта потока.

Источник

Функция Getline C++

Getline () используется для получения входной строки от пользователя в одной или нескольких строках до тех пор, пока не появится специальный символ (разделитель). Это предопределенная функция, которая использует библиотеку в программе, поскольку ее определение присутствует в файле заголовка библиотеки.

В этой статье будет объяснено множество основных примеров, объясняющих работу функции getline ().

Предварительное условие

Мы использовали версию Ubuntu 20.04; вы можете использовать последнюю версию. Для реализации вам понадобится текстовый редактор и доступ к терминалу Linux, потому что мы сможем видеть вывод исходных кодов на терминале через запрос.

Синтаксис функции getline ()

Функция getline () объясняется на основе параметров, которые используются внутри функции getline.

Теперь мы объясним каждый параметр этого синтаксиса один за другим.

Пример 1

В этом примере используется простой пример функции getline () в программе. В простых программах на C ++ нам нужна библиотека iostream в простых программах на C ++, но здесь, помимо этой библиотеки, мы использовали другую библиотеку, которая использует getline () в исходном коде C ++.

Подойдя к основной программе, здесь объявляется строковая переменная для приема строкового сообщения от пользователя. Когда мы выполняем код в терминале, пользователь увидит отображаемое сообщение, в котором система просит пользователя ввести строковое сообщение; это сообщение будет отображаться снова после некоторого шествия. Функция getline () примет предложение, введенное пользователем.

То же сообщение будет отображаться без каких-либо изменений. Мы внесем некоторые изменения после того, как значение будет введено в будущих примерах.

Сохраните код в файле с расширением C ++ / c.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Выполните команду в терминале Ubuntu. Для компиляции исходного кода нам понадобится компилятор. Для кода C ++ нам понадобится компилятор G ++ для компиляции кода.

После выполнения отображается сообщение; вам нужно ввести ваше сообщение. Чтобы система отображала вывод.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Теперь мы предлагаем тот же сценарий по-разному. Как мы знаем, как и функция getline, cin также используется для получения значения от пользователя. Но есть некоторые недостатки использования cin вместо функции getline или вместе с ней. Здесь мы использовали пример, в котором мы использовали cin вместо getline, чтобы увидеть эффект этого изменения. Все остальное то же самое. Например, библиотеки такие же. Вся программа написана внутри основной программы.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Теперь сохраните файл и запустите его в терминале Ubuntu. Когда мы компилируем код и затем выполняем его, система снова потребует от нас строковое сообщение. Мы напишем такую ​​же строку. Используя клавишу «ENTER», вы увидите, что вся строка не отображается. Отображается только одна часть строки. Это потому, что «cin» принимает значение из всей строки, пока не найдет первый пробел. Это причина того, что выходная мощность меньше оригинальной. Чтобы принять всю строку, используйте функцию getline (). Скомпилируйте код и затем выполните его.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Пример 2

В предыдущем примере, как и в случае использования cin, мы ограничили значение. Но в «cin» это очевидно; значение всегда уменьшается до первого пробела в данной строке. Но в этом примере с помощью функции getline () мы ограничили значение в операторе ввода, применив особое условие. По заданному условию в программе мы предоставляем алфавит. При выполнении кода, когда этот алфавит появляется во всей строке впервые, компилятор перестает печатать всю строку, и фрагмент строки от начала до этого алфавита отображается на экране в качестве результирующего значения.

В этом примере вы можете видеть, что мы использовали «I» в функции getline () внутри исходного кода. Вы можете использовать любой другой алфавит по своему усмотрению.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Теперь, после компиляции, выполните код на терминале. Из полученного значения ясно, что мы использовали «I» во входной строке, поэтому алфавиты, которые идут перед этим алфавитом, будут отображаться как выходные.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Пример 3

В этом примере вместо использования алфавита для отображения критериев мы используем здесь порядковый номер. При этом компилятор получит желаемую запись в соответствии с порядковым номером. Номер индекса, указанный в функции, прекратит дальнейшую выборку записи. Например, мы использовали число «7», поэтому сообщение будет отображаться в позиции 6 в индексе.

В этом примере вы также увидите, что есть небольшое изменение в написании функции getline (). В предыдущем примере мы использовали cin внутри параметров getline. Но на этот раз мы использовали другую технику написания этой функции.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Когда мы выполним код, мы увидим, что мы ввели имя, состоящее из двух слов с пробелом между ними. Но подав заявку на участие в программе, мы увидим, что название отображается до 6 позиции индекса.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Пример 4

В этом примере будет отображаться строка, так что каждое слово будет отображаться на следующей строке. В этом примере используется новая библиотека вместо других, поскольку функция этой библиотеки уже включает потоковую передачу ввода / вывода. А также позволяет читать и писать в файл. Это также включает побитовое отображение значений строки. Дайте нам знать, чтобы понять пример. Одна переменная получает значение, предоставленное пользователем через функцию getline. Другая переменная помогает разделить слова в строке и переместить их на следующую строку.

После получения значения это значение затем делит значение и помещает его в другую переменную «x». для функции отображения; мы будем использовать здесь цикл while.

В соответствии с циклом значение будет печататься до тех пор, пока значение не будет указано в операторе. Тело цикла берет одно слово из полного предложения и разрезает его там, где пробел присутствует или стоит первым. Это условие задается в цикле.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Вы можете увидеть результирующее значение, выполнив код после компиляции.

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

Заключение

В этой статье показаны некоторые элементарные примеры, объясняющие концепцию функции getline (). Вы можете использовать операционную систему Linux для уточнения. Мы объяснили несколько примеров, чтобы объяснить работу этой функции. В каждом примере работа этой функции изображена по-разному.

Источник

Русские Блоги

Подробное объяснение cin, cin.get (), getline ()

Тест первый: abcd ( Enter) abcd (вывод) efgh (ввод) efgh (вывод) Если количество вводимых пользователем символов строки впервые меньше 4, программа выполняется нормально!

Тест два: abcdefgh (Enter) abcd ( (Вывод) (вывод строки) Когда число символов, введенных пользователем в первый раз, больше 4, первая строка принимает первые четыре символа ввода, а вторая операция ввода не выполняется, вторая строка Выход пуст. (Обнаружение суперлиги Getline, не будет выполнять Cin после)

ВАЖНО: Когда cin >> читает данные из буфера, если первый символ в буфере является разделителем пробела, табуляции или новой строки, cin >> будет игнорировать и очищать его, Продолжайте читать следующий символ, если буфер пуст, продолжайте ждать. Однако, если чтение прошло успешно, разделитель после символа остается в буфере, а cin >> не обрабатывается 。 ( понимание )

Примечание:

Что такое getline в c. Смотреть фото Что такое getline в c. Смотреть картинку Что такое getline в c. Картинка про Что такое getline в c. Фото Что такое getline в c

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。

Недостаточно сбросить флаг ошибки! Было бы хорошо, если бы оставшиеся данные в буфере могли быть очищены! Давайте посмотрим на очень важную функцию ниже!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *