القائمة الرئيسية

الصفحات

 C++ Basic Input/Output



The C++ standard libraries provide an extensive set of input/output capabilities which we will see in subsequent chapters. This chapter will discuss very basic and most common I/O operations required for C++ programming.

توفر مكتبات C القياسية مجموعة واسعة من إمكانيات الإدخال والإخراج والتي سنراها في الفصول اللاحقة. سيناقش هذا الفصل العمليات الأساسية والأكثر شيوعًا المطلوبة لبرمجة لغة سي.

C++ I/O occurs in streams, which are sequences of bytes. If bytes flow from a device like a keyboard, a disk drive, or a network connection etc. to main memory, this is called input operation and if bytes flow from main memory to a device like a display screen, a printer, a disk drive, or a network connection, etc., this is called output operation.

يحدث في التدفقات ، وهي عبارة عن تسلسل من البايت. إذا كانت البايت تتدفق من جهاز مثل لوحة المفاتيح أو محرك الأقراص أو اتصال الشبكة وما إلى ذلك إلى الذاكرة الرئيسية ، فإن هذا يسمى عملية الإدخال وإذا كانت وحدات البايت تتدفق من الذاكرة الرئيسية إلى جهاز مثل شاشة العرض أو الطابعة أو محرك الأقراص ، أو اتصال الشبكة ، وما إلى ذلك ، وهذا ما يسمى عملية الإخراج.

I/O Library Header Files

There are following header files important to C++ programs −

Sr.NoHeader File & Function and Description
1

<iostream>

This file defines the cin, cout, cerr and clog objects, which correspond to the standard input stream, the standard output stream, the un-buffered standard error stream and the buffered standard error stream, respectively.

2

<iomanip>

This file declares services useful for performing formatted I/O with so-called parameterized stream manipulators, such as setw and setprecision.

3

<fstream>

This file declares services for user-controlled file processing. We will discuss about it in detail in File and Stream related chapter.

The Standard Output Stream (cout)

The predefined object cout is an instance of ostream class. The cout object is said to be "connected to" the standard output device, which usually is the display screen. The cout is used in conjunction with the stream insertion operator, which is written as << which are two less than signs as shown in the following example.

cout الكائن المحدد مسبقًا هو مثيل لفئة ostream. يُقال أن كائن cout "متصل" بجهاز الإخراج القياسي ، والذي عادةً ما يكون شاشة العرض. يتم استخدام cout جنبًا إلى جنب مع عامل إدخال الدفق ، والذي تتم كتابته على أنه << وهما أقل من علامتين كما هو موضح في المثال التالي.


#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Hello C++";
 
   cout << "Value of str is : " << str << endl;
}

When the above code is compiled and executed, it produces the following result −

Value of str is : Hello C++

The C++ compiler also determines the data type of variable to be output and selects the appropriate stream insertion operator to display the value. The << operator is overloaded to output data items of built-in types integer, float, double, strings and pointer values.

يحدد برنامج التحويل البرمجي C أيضًا نوع بيانات المتغير الذي سيتم إخراجه ويختار عامل إدخال التدفق المناسب لعرض القيمة. تم تحميل عامل التشغيل << بشكل زائد لإخراج عناصر البيانات ذات الأنواع المضمنة من الأعداد الصحيحة ، والعائمة ، والمزدوجة ، والسلاسل ، وقيم المؤشر.

The insertion operator << may be used more than once in a single statement as shown above and endl is used to add a new-line at the end of the line.

يمكن استخدام عامل الإدخال << أكثر من مرة في عبارة واحدة كما هو موضح أعلاه ويتم استخدام endl لإضافة سطر جديد في نهاية السطر.

The Standard Input Stream (cin)

The predefined object cin is an instance of istream class. The cin object is said to be attached to the standard input device, which usually is the keyboard. The cin is used in conjunction with the stream extraction operator, which is written as >> which are two greater than signs as shown in the following example.

الكائن المحدد مسبقًا cin هو مثيل لفئة istream. يُقال أن الكائن cin متصل بجهاز الإدخال القياسي ، والذي يكون عادةً لوحة المفاتيح. يتم استخدام cin جنبًا إلى جنب مع عامل استخراج التدفق ، والذي تتم كتابته على أنه >> وهما أكبر من علامتين كما هو موضح في المثال التالي.

#include <iostream>
 
using namespace std;
 
int main() {
   char name[50];
 
   cout << "Please enter your name: ";
   cin >> name;
   cout << "Your name is: " << name << endl;
 
}

When the above code is compiled and executed, it will prompt you to enter a name. You enter a value and then hit enter to see the following result − النتيجة

Please enter your name: cplusplus
Your name is: cplusplus

The C++ compiler also determines the data type of the entered value and selects the appropriate stream extraction operator to extract the value and store it in the given variables.

The stream extraction operator >> may be used more than once in a single statement. To request more than one datum you can use the following −

يحدد مترجم C أيضًا نوع البيانات للقيمة المدخلة ويختار عامل استخراج التدفق المناسب لاستخراج القيمة وتخزينها في المتغيرات المحددة. يمكن استخدام عامل استخراج التدفق >> أكثر من مرة في عبارة واحدة. لطلب أكثر من مرجع يمكنك استخدام ما يلي -

cin >> name >> age;

This will be equivalent to the following two statements −

cin >> name;
cin >> age;

The Standard Error Stream (cerr)

The predefined object cerr is an instance of ostream class. The cerr object is said to be attached to the standard error device, which is also a display screen but the object cerr is un-buffered and each stream insertion to cerr causes its output to appear immediately.

The cerr is also used in conjunction with the stream insertion operator as shown in the following example.

كائن cerr المحدد مسبقًا هو مثيل لفئة ostream. يُقال أن كائن cerr متصل بجهاز الخطأ القياسي ، وهو أيضًا شاشة عرض ولكن لا يتم تخزين الكائن cerr مؤقتًا ، ويؤدي إدخال كل تدفق إلى cerr إلى ظهور مخرجاته على الفور. يتم استخدام cerr أيضًا جنبًا إلى جنب مع مشغل إدخال الدفق كما هو موضح في المثال التالي.


#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   cerr << "Error message : " << str << endl;
}

When the above code is compiled and executed, it produces the following result −

Error message : Unable to read....

The Standard Log Stream (clog)

The predefined object clog is an instance of ostream class. The clog object is said to be attached to the standard error device, which is also a display screen but the object clog is buffered. This means that each insertion to clog could cause its output to be held in a buffer until the buffer is filled or until the buffer is flushed.

The clog is also used in conjunction with the stream insertion operator as shown in the following example.

انسداد الكائن المحدد مسبقًا هو مثيل لفئة ostream. يُقال أن كائن السدادة متصل بجهاز الخطأ القياسي ، وهو أيضًا شاشة عرض ولكن يتم تخزين انسداد الكائن مؤقتًا. هذا يعني أن كل إدخال في الانسداد قد يتسبب في الاحتفاظ بإخراجها في مخزن مؤقت حتى يتم ملء المخزن المؤقت أو حتى يتم مسح المخزن المؤقت. يتم استخدام السدادة أيضًا جنبًا إلى جنب مع مشغل إدخال التيار كما هو موضح في المثال التالي.

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   clog << "Error message : " << str << endl;
}

When the above code is compiled and executed, it produces the following result −

Error message : Unable to read....

You would not be able to see any difference in cout, cerr and clog with these small examples, but while writing and executing big programs the difference becomes obvious. So it is good practice to display error messages using cerr stream and while displaying other log messages then clog should be used.

لن تكون قادرًا على رؤية أي اختلاف في cout و cerr و clog مع هذه الأمثلة الصغيرة ، ولكن أثناء كتابة وتنفيذ البرامج الكبيرة يصبح الاختلاف واضحًا. لذلك فمن الممارسات الجيدة عرض رسائل الخطأ باستخدام دفق cerr وأثناء عرض رسائل السجل الأخرى ، يجب استخدام clog.

هل اعجبك الموضوع :

تعليقات