Неформатированные операции ввода/вывода в C++
В этой статье мы обсудим неформатированные операции ввода/вывода в C++. Использование объектов cin и cout для ввода и вывода данных различных типов возможно из-за перегрузки операторов >> и << для распознавания всех основных типов C++. Оператор >> перегружен в классе istream, а оператор << перегружен в классе ostream.
Общий формат чтения данных с клавиатуры:
cin >> var1 >> var2 >> …. >> var_n;
- Здесь var 1 , var 2 , ……, var n — имена переменных, которые уже объявлены.
- Входные данные должны быть разделены пробелами, а тип данных пользовательского ввода должен быть аналогичен типам данных переменных, объявленных в программе.
- Оператор >> считывает данные посимвольно и присваивает их указанному местоположению.
- Чтение переменных прекращается, когда появляется пробел или появляется тип символа, не соответствующий типу назначения.
Программа 1:
C++
// C++ program to illustrate the // input and output of the data // entered by user #include <iostream> using namespace std; // Driver Code int main() { int data; char val; // Input the data cin >> data; cin >> val; // Print the data cout << data << " " << val; return 0; } |
Выход:
Объяснение: В приведенной выше программе 123 хранится в переменной val целого числа, а B передается следующему объекту cin и сохраняется в переменной данных типа character.
Функции put() и get() :
Классы istream и ostream имеют предопределенные функции get() и put() для обработки односимвольных операций ввода и вывода. Функцию get() можно использовать двумя способами, например, get(char*) и get(void) для извлечения символов, включая пробелы, символы новой строки и табуляцию. Функция get(char*) присваивает значение переменной и get(void) возвращает значение символа.
Синтаксис:
char data;
// get() return the character value and assign to data variable
data = cin.get();// Display the value stored in data variable
cout.put(data);
Пример:
char c;
// directly assign value to c
cin.get(c);// Display the value stored in c variable
cout.put()
Программа 2:
C++
// C++ program to illustrate the // input and output of data using // get() and puts() #include <iostream> using namespace std; // Driver Code int main() { char data; int count = 0; cout << "Enter Data: " ; // Get the data cin.get(data); while (data != "
" ) { // Print the data cout.put(data); count++; // Get the data again cin.get(data); } return 0; } |
Выход:
Функции getline() и write():
В C++ функции getline() и write() обеспечивают более эффективный способ обработки строковых вводов и выводов. Функция getline() считывает всю строку текста, которая заканчивается символом новой строки. Эта функция может быть вызвана с помощью объекта cin .
Синтаксис:
cin.getline(variable_to_store_line, size);
Чтение завершается символом ' ' (перевод строки) . Новый символ считывается функцией, но не отображается, а заменяется символом NULL. После чтения определенной строки cin автоматически добавляет символ новой строки в конец строки.
Функция write() отображает всю строку за один раз, и ее синтаксис похож на функцию getline(), только здесь для ее вызова используется объект cout .
Синтаксис:
cout.write(variable_to_store_line, size);
Ключевым моментом, который следует помнить, является то, что функция write() не прекращает автоматически отображать строку при появлении символа NULL . Если размер больше длины строки, то функция write() отображается за границей строки.
Программа 3:
C++
// C++ program to illustrate the // input and output of file using // getline() and write() function #include <iostream> #include <string> using namespace std; // Driver Code int main() { char line[100]; // Get the input cin.getline(line, 10); // Print the data cout.write(line, 5); cout << endl; // Print the data cout.write(line, 20); cout << endl; return 0; } |
Выход: