что такое getline в c

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

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

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

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

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

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

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

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

getline

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

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

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

чтение

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

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

функции seekg и tellg

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

close

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

Источник

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

Использование 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 () допустимым. Так!

Интеллектуальная рекомендация

Разработка Android NDK (1)

Источник

Функция Getline C++

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

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

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

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

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

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

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

Пример 1

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

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

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

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

что такое getline в c. Sohranite kod v fajle s rasshireniem C. что такое getline в c фото. что такое getline в c-Sohranite kod v fajle s rasshireniem C. картинка что такое getline в c. картинка Sohranite kod v fajle s rasshireniem C.

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

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

что такое getline в c. vypolneniya otobrazhaetsya soobshhenie vam nuzhno vvesti vashe e1638415517139. что такое getline в c фото. что такое getline в c-vypolneniya otobrazhaetsya soobshhenie vam nuzhno vvesti vashe e1638415517139. картинка что такое getline в c. картинка vypolneniya otobrazhaetsya soobshhenie vam nuzhno vvesti vashe e1638415517139.

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

что такое getline в c. Kak my znaem kak i funktsiya getline cin takzhe ispolzuetsya dlya polucheniya e1638415557228. что такое getline в c фото. что такое getline в c-Kak my znaem kak i funktsiya getline cin takzhe ispolzuetsya dlya polucheniya e1638415557228. картинка что такое getline в c. картинка Kak my znaem kak i funktsiya getline cin takzhe ispolzuetsya dlya polucheniya e1638415557228.

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

что такое getline в c. Eto prichina togo chto vyhodnaya moshhnost menshe originalnoj e1638415607830. что такое getline в c фото. что такое getline в c-Eto prichina togo chto vyhodnaya moshhnost menshe originalnoj e1638415607830. картинка что такое getline в c. картинка Eto prichina togo chto vyhodnaya moshhnost menshe originalnoj e1638415607830.

Пример 2

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

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

что такое getline в c. V etom primere vy mozhete videt chto my ispolzovali I. что такое getline в c фото. что такое getline в c-V etom primere vy mozhete videt chto my ispolzovali I. картинка что такое getline в c. картинка V etom primere vy mozhete videt chto my ispolzovali I.

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

что такое getline в c. Teper posle kompilyatsii vypolnite kod na terminale e1638415718685. что такое getline в c фото. что такое getline в c-Teper posle kompilyatsii vypolnite kod na terminale e1638415718685. картинка что такое getline в c. картинка Teper posle kompilyatsii vypolnite kod na terminale e1638415718685.

Пример 3

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

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

что такое getline в c. V etom primere vy takzhe uvidite chto est nebolshoe izmenenie v napisanii funktsii getline. что такое getline в c фото. что такое getline в c-V etom primere vy takzhe uvidite chto est nebolshoe izmenenie v napisanii funktsii getline. картинка что такое getline в c. картинка V etom primere vy takzhe uvidite chto est nebolshoe izmenenie v napisanii funktsii getline.

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

что такое getline в c. No podav zayavku na uchastie v programme my uvidim e1638415783139. что такое getline в c фото. что такое getline в c-No podav zayavku na uchastie v programme my uvidim e1638415783139. картинка что такое getline в c. картинка No podav zayavku na uchastie v programme my uvidim e1638415783139.

Пример 4

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

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

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

что такое getline в c. V sootvetstvii s tsiklom znachenie budet pechatatsya do teh por poka zn. что такое getline в c фото. что такое getline в c-V sootvetstvii s tsiklom znachenie budet pechatatsya do teh por poka zn. картинка что такое getline в c. картинка V sootvetstvii s tsiklom znachenie budet pechatatsya do teh por poka zn.

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

что такое getline в c. mozhete uvidet rezultiruyushhee znachenie vypolniv kod posle e1638415856169. что такое getline в c фото. что такое getline в c-mozhete uvidet rezultiruyushhee znachenie vypolniv kod posle e1638415856169. картинка что такое getline в c. картинка mozhete uvidet rezultiruyushhee znachenie vypolniv kod posle e1638415856169.

Заключение

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

Источник

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

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

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

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

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

Примечание:

что такое getline в c. f11d3e923a95a1dce7ce1d19bf0fda53. что такое getline в c фото. что такое getline в c-f11d3e923a95a1dce7ce1d19bf0fda53. картинка что такое getline в c. картинка f11d3e923a95a1dce7ce1d19bf0fda53.

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。

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

Эта функция используется для удаления символов во входном буфере.Первый параметр определяет число, а второй параметр определяет символьную переменную. Далее объясняется, как выполняется функция: Функция продолжает извлекать символ из буфера и определяет, является ли он _Delim. Если это не так, он сбрасывает и считает. Когда счет достигает _Count, он завершается. Пример: cin.ignore (5, ‘a’); функция будет продолжать извлекать символ из буфера и отбрасывать его до тех пор, пока количество отброшенных символов не достигнет 5 или пока не будет прочитано «a».

Интеллектуальная рекомендация

Разработка Android NDK (1)

Источник

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.

Источник

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

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