Яка різниця між Cin і Getline для рядка?
2024getline видаляє роздільник із вхідного потоку, cin – ні. Оскільки getline дозволяє вказати роздільник, ви можете вводити дані з пробілами. Тож за допомогою getline ви можете ввести повне ім’я людини, наприклад «Джон Сміт», у рядкову змінну. 28 грудня 2021 р.
C++ getline() — це вбудована функція, визначена в <string. h> файл заголовка, який дозволяє приймати та читати рядки одного та кількох рядків із вхідного потоку. У C++, об'єкт cin також дозволяє введення від користувача, але не багатослівний або багаторядковий ввід. Ось тут і стане в нагоді функція getline().
C++ getline() — стандартна бібліотечна функція, яка використовується для читання рядка або рядка з вхідного потоку. Це частина заголовка <string>. Функція getline() витягує символи з вхідного потоку та додає їх до рядкового об’єкта, доки не зустрінеться символ-розмежувач.
std::cin >> число; Цей фрагмент коду зчитує ціле число від користувача та зберігає його в змінній number. Об’єкт cin може обробляти різні типи даних, включаючи цілі числа, числа з плаваючою точкою, символи та рядки.
Читання рядків: get і getline Функції get і getline (з трьома параметрами) читатимуть і зберігатимуть рядок у стилі c.
Якщо getline використовується після cin>>, getline бачить цей символ нового рядка як початковий пробіл, вважає, що це завершено, і припиняє читати далі. Ім’я не друкувалося, оскільки getline бачив символ нового рядка, що залишився від cin>>, як пробіл, і перестав читати далі.
Отже, якщо ви викликаєте getline() одразу після cin, замість цього ви отримаєте новий рядок, оскільки це перший символ у вхідному потоці! Щоб цього уникнути, просто додайте фіктивний std::getline(), щоб використовувати цей символ нового рядка! У наведеній нижче програмі показано проблему з використанням cin безпосередньо перед getline().