Что возвращает getline c
std:: getline (string)
Extracts characters from is and stores them into str until the delimitation character delim is found (or the newline character, '\n', for (2)).
The extraction also stops if the end of file is reached in is or if some other error occurs during the input operation.
If the delimiter is found, it is extracted and discarded (i.e. it is not stored and the next input operation will begin after it).
Note that any content in str before the call is replaced by the newly extracted sequence.
Each extracted character is appended to the string as if its member push_back was called.
Parameters
Return Value
The same as parameter is.
A call to this function may set any of the internal state flags of is if:
flag | error |
---|---|
eofbit | The end of the source of characters is reached during its operations. |
failbit | The input obtained could not be interpreted as a valid textual representation of an object of this type. In this case, distr preserves the parameters and internal data it had before the call. Notice that some eofbit cases will also set failbit. |
badbit | An error other than the above happened. |
(see ios_base::iostate for more info on these)
Additionally, in any of these cases, if the appropriate flag has been set with is‘s member function ios::exceptions, an exception of type ios_base::failure is thrown.
Функции-члены потока ввода
Функции — члены потока ввода используются для дисковых операций ввода.
Если используется входной поток файлов ( ifstream ), необходимо связать этот поток с конкретным файлом диска. Это можно сделать в конструкторе или можно использовать open функцию. В любом случае аргументы одни и те же.
Чтобы прочитать файл, сначала используйте функцию- fail член, чтобы определить, существует ли она:
Неформатированная get функция элемента работает как >> оператор с двумя исключениями. Во-первых, get функция включает пробелы, в то время как средство извлечения исключает пробелы при skipws установке флага (по умолчанию). Во-вторых, эта get функция менее вероятно приведет к тому, что связанный поток вывода ( cout например,) будет сброшен.
Вариант get функции указывает адрес буфера и максимальное число считываемых символов. Это полезно для ограничения количества символов, отправленных в конкретную переменную, как показано в примере:
Входные данные
Пример выходных данных
getline
getline Функция-член аналогична get функции. Обе функции допускают третий аргумент, который указывает завершающий символ для входных данных. Значение по умолчанию — символ новой строки. Обе функции резервируют один символ для необходимого завершающего символа. Однако get оставляет завершающий символ в потоке и getline удаляет завершающий символ.
В следующем примере задается завершающий символ для потока ввода:
Входные данные
чтение
Этот пример считывает двоичную запись из файла заработной платы в структуру:
Программа предполагает, что записи данных форматируются точно так же, как указано в структуре, без завершающего возврата каретки или символов перевода строки.
функции seekg и tellg
Чтобы использовать seekg для реализации систем управления данными, ориентированных на записи, умножьте размер записи фиксированной длины на номер записи, чтобы получить координату байта относительно конца файла, а затем используйте get объект для чтения записи.
close
close Функция члена закрывает файл диска, связанный с входным файлом потока, и освобождает файл операционной системы. ifstream Деструктор закрывает файл, но функцию можно использовать, close Если необходимо открыть другой файл для того же объекта потока.
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
input | — | the stream to get data from |
str | — | the string to put the data into |
delim | — | the 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.
Функции
getline
Извлекает строки из входного потока, последовательно по одной строке.
Параметры
in_stream
Входной поток, из которого извлекается строка.
str
Строка, в которую считываются символы из входного потока.
delimiter
Разделитель строк.
Возвращаемое значение
Комментарии
Вторая функция каждой пары является аналогом первой из них для поддержки ссылок.
Извлечение останавливается при возникновении одного из следующих условий.
При возникновении исключения in_stream и str остаются в допустимом состоянии.
Пример
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
Возвращаемое значение
Комментарии
Преобразует последовательность символов в число с плавающей запятой.
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
Возвращаемое значение
Комментарии
Преобразует последовательность символов в целое число.
Возвращаемое значение
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
base
Используемое числовое основание.
Комментарии
Функция stoi преобразует последовательность символов в stoi в значение типа int и возвращает значение. Например, если передать последовательность символов «10», stoi возвращает целочисленное значение 10.
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
base
Используемое числовое основание.
Возвращаемое значение
Длинное целое значение.
Комментарии
stold
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
Возвращаемое значение
Комментарии
stoll
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
base
Используемое числовое основание.
Возвращаемое значение
Комментарии
stoul
Преобразует последовательность символов в длинное целое без знака.
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
base
Используемое числовое основание.
Возвращаемое значение
Длинное целое значение без знака.
Комментарии
stoull
Параметры
str
Последовательность символов для преобразования.
idx
Значение индекса первого непреобразованного символа.
base
Используемое числовое основание.
Возвращаемое значение
Комментарии
Меняет местами массивы символов двух строк.
Параметры
left
Одна строка, элементы которой должны быть заменены элементами другой строки.
right
Другая строка, элементы которой будут заменены на элементы первой строки.
Комментарии
Пример
to_string
Параметры
value
Преобразуемое значение.
Возвращаемое значение
Комментарии
«%d» Если value имеет тип int
«%u» Если value имеет тип unsigned int
«%ld» Если value имеет тип long
«%lu» Если value имеет тип unsigned long
«%lld» Если value имеет тип long long
«%llu» Если value имеет тип unsigned long long
«%f» Если value имеет тип float или double
«%Lf» Если value имеет тип long double
to_wstring
Преобразует значение в расширенную строку.
Параметры
value
Преобразуемое значение.
Возвращаемое значение
Расширенная строка, представляющая значение.
Комментарии
L»%d» Если value имеет тип int
L»%u» Если value имеет тип unsigned int
L»%ld» Если value имеет тип long
L»%lu» Если value имеет тип unsigned long
L»%lld» Если value имеет тип long long
L»%llu» Если value имеет тип unsigned long long
L»%f» Если value имеет тип float или double
L»%Lf» Если value имеет тип long double
Функция 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 для уточнения. Мы объяснили несколько примеров, чтобы объяснить работу этой функции. В каждом примере работа этой функции изображена по-разному.