சி ++ இல் ஒரு கோப்பைப் படிப்பது மற்றும் எழுதுவது எப்படி

How Read Write File C



இந்த கட்டுரையில், C ++ நிரலாக்க மொழியில் உள்ள ஒரு கோப்பை எப்படிப் படிக்கலாம் மற்றும் எழுதலாம் என்பதை பல எடுத்துக்காட்டுகளைப் பயன்படுத்தி உங்களுக்குக் காண்பிக்கப் போகிறோம். வாசித்தல் மற்றும் எழுதுதல் போன்ற சி ++ கோப்பு செயல்பாடுகளை புரிந்து கொள்ள, நாம் முதலில் சி ++ இல் ஒரு ஸ்ட்ரீம் என்ற கருத்தை புரிந்து கொள்ள வேண்டும்.

ஸ்ட்ரீம் என்றால் என்ன?

ஸ்ட்ரீம் என்பது தரவு அல்லது எழுத்துகளின் ஓட்டம். இரண்டு வகையான ஸ்ட்ரீம்கள் உள்ளன: உள்ளீட்டு ஸ்ட்ரீம்கள் மற்றும் வெளியீடு ஸ்ட்ரீம்கள். விசைப்பலகை போன்ற வெளிப்புற உள்ளீட்டு சாதனத்திலிருந்து தரவைப் படிக்க ஒரு உள்ளீட்டு ஸ்ட்ரீம் பயன்படுத்தப்படுகிறது, அதே நேரத்தில் மானிட்டர் போன்ற வெளிப்புற வெளியீட்டு சாதனத்திற்கு தரவை எழுத ஒரு வெளியீட்டு ஸ்ட்ரீம் பயன்படுத்தப்படுகிறது. ஒரு கோப்பு உள்ளீடு மற்றும் வெளியீட்டு ஆதாரமாக கருதப்படுகிறது.









சி ++ இல், ஒரு வெளிப்புற மூலத்திற்கு அல்லது தரவை அனுப்ப அல்லது பெற ஒரு ஸ்ட்ரீமைப் பயன்படுத்துகிறோம்.



உள்ளீடு/வெளியீட்டு ஸ்ட்ரீமை அணுகுவதற்கு உள்ளமைக்கப்பட்ட வகுப்புகளை நாம் பயன்படுத்தலாம், அதாவது, ios.





சி ++ நிரலாக்க மொழியின் ஸ்ட்ரீம் கிளாஸ் வரிசைமுறை இங்கே:



சின் மற்றும் கோட் பொருள்கள் விசைப்பலகையிலிருந்து தரவைப் படிக்கவும், முறையே மானிட்டரில் வெளியீட்டைக் காட்டவும் பயன்படுத்தப்படுகின்றன. கூடுதலாக, உள்ளீட்டு கோப்பு ஸ்ட்ரீமை குறிக்கும் ifstream, ஒரு கோப்பிலிருந்து தரவின் ஸ்ட்ரீமைப் படிக்க பயன்படுகிறது, மேலும் வெளியீட்டு கோப்பு ஸ்ட்ரீமை குறிக்கும் ஆஃப்ஸ்ட்ரீம், ஒரு கோப்பில் தரவு ஸ்ட்ரீமை எழுத பயன்படுகிறது.

Iostram.h கோப்பில் சி ++ நிரலாக்க மொழியில் தேவையான அனைத்து நிலையான உள்ளீடு/வெளியீட்டு ஸ்ட்ரீம் வகுப்புகள் உள்ளன.

எடுத்துக்காட்டுகள்

ஸ்ட்ரீம்களின் அடிப்படைகளை இப்போது நீங்கள் புரிந்துகொண்டுள்ளீர்கள், C ++ இல் கோப்பு செயல்பாடுகளை நன்கு புரிந்துகொள்ள பின்வரும் எடுத்துக்காட்டுகளை நாங்கள் விவாதிப்போம்:

  • எடுத்துக்காட்டு 1: ஒரு கோப்பைத் திறந்து மூடு
  • எடுத்துக்காட்டு 2: ஒரு கோப்பில் எழுதுங்கள்
  • எடுத்துக்காட்டு 3: ஒரு கோப்பிலிருந்து படிக்கவும்
  • எடுத்துக்காட்டு 4: ஒரு கோப்பில் படிக்கவும் எழுதவும்
  • எடுத்துக்காட்டு 5: ஒரு பைனரி கோப்பில் படிக்கவும் எழுதவும்

எடுத்துக்காட்டு 1: ஒரு கோப்பைத் திறந்து மூடு

இந்த எடுத்துக்காட்டு நிரலில், ஒரு கோப்பை எவ்வாறு திறப்பது/உருவாக்குவது மற்றும் C ++ இல் கோப்பை எவ்வாறு மூடுவது என்பதை நாங்கள் காண்பிப்போம். கீழேயுள்ள நிரலில் நீங்கள் பார்க்க முடிந்தபடி, கோப்பு செயல்பாடுகளுக்குத் தேவையான நூலகத்தை நாங்கள் சேர்த்துள்ளோம்.

ஒரு கோப்பைத் திறக்க மற்றும் மூட, நமக்கு ஒரு ஸ்ட்ரீம் பொருள் தேவை. பிறகு, ஒரு கோப்பைப் படிக்க அல்லது எழுத, நாம் கோப்பைத் திறக்க வேண்டும். ஸ்ட்ரீம் வகுப்பை அணுகுவதற்காக ஃப்ஸ்ட்ரீம் தலைப்பு கோப்பை வரி எண் -1 இல் சேர்த்துள்ளோம்.

முக்கிய செயல்பாட்டிற்குள் myFile_Handler ஐ ஸ்ட்ரீம் பொருளாக அறிவித்துள்ளோம். ஒரு வெற்று கோப்பை உருவாக்க நாம் திறந்த () செயல்பாட்டையும், கோப்பை மூடுவதற்கு நெருங்கிய () செயல்பாட்டையும் பயன்படுத்தலாம்.

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()
{
ஸ்ட்ரீம் myFile_Handler;

// கோப்பு திறந்திருக்கும்
myFile_Handler.திறந்த('File_1.txt');

// கோப்பு மூடப்பட்டது
myFile_Handler.நெருக்கமான();
திரும்ப 0;
}

இப்போது, ​​நிரலைத் தொகுத்து வெளியீட்டை ஆராய்வோம். கீழே உள்ள வெளியீடு சாளரத்தில் நீங்கள் பார்க்க முடியும் என, File_1.txt கோப்பு நிரலை இயக்கிய பிறகு உருவாக்கப்பட்டது. கோப்பில் எந்த உள்ளடக்கத்தையும் நாங்கள் எழுதாததால் கோப்பின் அளவு பூஜ்ஜியமாகும்.

எடுத்துக்காட்டு 2: ஒரு கோப்பில் எழுதுங்கள்

முந்தைய எடுத்துக்காட்டு நிரலில், ஒரு கோப்பை எவ்வாறு திறப்பது மற்றும் கோப்பை எவ்வாறு மூடுவது என்பதை நாங்கள் உங்களுக்குக் காட்டினோம். இப்போது, ​​ஒரு கோப்பில் ஏதாவது எழுதுவது எப்படி என்பதை நாங்கள் உங்களுக்குக் காண்பிப்போம்.

ஸ்ட்ரீம் செருகும் ஆபரேட்டரைப் பயன்படுத்தி ஒரு கோப்பில் நாம் எழுதலாம், அதாவது.<<. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (<<) indicates that we are inserting the string into the output file stream object.

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()
{
ஸ்ட்ரீம் myFile_Handler;
// கோப்பு திறந்திருக்கும்
myFile_Handler.திறந்த('File_1.txt');

// கோப்பில் எழுதுங்கள்
myFile_Handler<< இது ஒரு மாதிரி சோதனை கோப்பு. ' <<endl;
myFile_Handler<< இது கோப்பின் இரண்டாவது வரி. ' <<endl;

// கோப்பு மூடப்பட்டது
myFile_Handler.நெருக்கமான();
திரும்ப 0;
}

இப்போது, ​​மேலே உள்ள நிரலை தொகுத்து அதை செயல்படுத்துவோம். நீங்கள் கீழே காணக்கூடியபடி, File_1.txt கோப்பில் வெற்றிகரமாக எழுதினோம்.

எடுத்துக்காட்டு 3: ஒரு கோப்பிலிருந்து படிக்கவும்

முந்தைய எடுத்துக்காட்டுகளில், ஒரு கோப்பில் உள்ளடக்கத்தை எப்படி எழுதுவது என்பதை நாங்கள் உங்களுக்குக் காண்பித்தோம். இப்போது, ​​உதாரணம் -2 இல் நாம் உருவாக்கிய கோப்பின் உள்ளடக்கத்தைப் படித்து, நிலையான வெளியீட்டு சாதனத்தில், அதாவது மானிட்டரில் உள்ளடக்கத்தைக் காண்பிப்போம்.

கோப்பில் இருந்து முழுமையான வரியைப் படிக்க getline () செயல்பாட்டைப் பயன்படுத்துகிறோம், பின்னர் மானிட்டரில் வரியை அச்சிடுவதற்கு cout செய்கிறோம்.

#சேர்க்கிறது
#சேர்க்கிறது
#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()
{
ifstream myFile_Handler;
சரம் மைலைன்;

// படித்தல் முறையில் கோப்பு திறக்கவும்
myFile_Handler.திறந்த('File_1.txt');

என்றால்(myFile_Handler.திறந்துள்ளது())
{
// கோப்பை தொடர்ந்து படிக்கவும்
போது(கெட்லைன்(myFile_Handler, myLine))
{
// நிலையான வெளியீட்டில் வரியை அச்சிடுங்கள்
செலவு <<மைலைன்<<endl;
}
// கோப்பு மூடப்பட்டது
myFile_Handler.நெருக்கமான();
}
வேறு
{
செலவு << 'கோப்பைத் திறக்க முடியவில்லை!';
}
திரும்ப 0;
}

இப்போது, ​​பின்வரும் கட்டளையைப் பயன்படுத்தி File_1.txt இன் உள்ளடக்கத்தை அச்சிடுவோம்: cat File_1.txt. நிரலைத் தொகுத்து செயல்படுத்தியவுடன், வெளியீடு கோப்பின் உள்ளடக்கத்துடன் பொருந்துகிறது என்பது தெளிவாகிறது. எனவே, நாங்கள் கோப்பை வெற்றிகரமாக படித்து, கோப்பின் உள்ளடக்கத்தை மானிட்டரில் அச்சிட்டோம்.

எடுத்துக்காட்டு 4: ஒரு கோப்பில் படிக்கவும் எழுதவும்

இதுவரை, ஒரு கோப்பை எப்படித் திறப்பது, வாசிப்பது, எழுதுவது மற்றும் மூடுவது என்பதை நாங்கள் உங்களுக்குக் காட்டியுள்ளோம். சி ++ இல், நாம் ஒரே நேரத்தில் ஒரு கோப்பில் படிக்கவும் எழுதவும் முடியும். ஒரு கோப்பில் படிப்பதற்கும் எழுதுவதற்கும் நாம் ஒரு ஃப்ஸ்ட்ரீம் பொருளைப் பெற்று கோப்பை ios :: in மற்றும் ios :: அவுட் முறையில் திறக்க வேண்டும்.

இந்த எடுத்துக்காட்டில், நாங்கள் முதலில் கோப்பில் சில உள்ளடக்கத்தை எழுதுகிறோம். பின்னர், கோப்பிலிருந்து தரவைப் படித்து மானிட்டரில் அச்சிடலாம்.

#சேர்க்கிறது
#சேர்க்கிறது
#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()
{
fstream myFile_Handler;
சரம் மைலைன்;

// கோப்பு திறந்திருக்கும்
myFile_Handler.திறந்த('File_1.txt', ஐஓஎஸ்::இல் |ஐஓஎஸ்::வெளியே);

// கோப்பு திறந்திருக்கிறதா என்று சோதிக்கவும்
என்றால்(!myFile_Handler)
{
செலவு << 'கோப்பு திறக்கப்படவில்லை!';
வெளியேறு(1);
}

// கோப்பில் எழுதுங்கள்
myFile_Handler<< '1 இது மற்றொரு மாதிரி சோதனை கோப்பு. ' <<endl;
myFile_Handler<< '2 இது கோப்பின் இரண்டாவது வரி. ' <<endl;

myFile_Handler.தேடு(ஐஓஎஸ்::பிச்சை);

// கோப்பைப் படியுங்கள்
என்றால்(myFile_Handler.திறந்துள்ளது())
{
// கோப்பை தொடர்ந்து படிக்கவும்
போது(கெட்லைன்(myFile_Handler, myLine))
{
// நிலையான வெளியீட்டில் வரியை அச்சிடுங்கள்
செலவு <<மைலைன்<<endl;
}

// கோப்பு மூடப்பட்டது
myFile_Handler.நெருக்கமான();
}
வேறு
{
செலவு << 'கோப்பைத் திறக்க முடியவில்லை!';
}
myFile_Handler.நெருக்கமான();
திரும்ப 0;
}

இப்போது, ​​நாங்கள் நிரலை தொகுத்து செயல்படுத்துவோம்.

எடுத்துக்காட்டு 5: ஒரு பைனரி கோப்பில் படிக்கவும் எழுதவும்

இந்த எடுத்துக்காட்டில், நாங்கள் ஒரு வகுப்பை அறிவிக்கப் போகிறோம், பின்னர் பொருளை ஒரு பைனரி கோப்பில் எழுதப் போகிறோம். இந்த உதாரணத்தை எளிமையாக்க, எம்ப்ளாயி வகுப்பை ஒரு பொது மாறி emp_id உடன் அறிவித்துள்ளோம். பிறகு, நாம் பைனரி கோப்பைப் படித்து வெளியீட்டை மானிட்டரில் அச்சிடுவோம்.

#சேர்க்கிறது
#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

வர்க்கம்பணியாளர்
{
பொது:
intemp_id;
};

intமுக்கிய()
{
ஸ்ட்ரீம் binOutFile_Handler;
ifstream binInFile_Handler;

ஊழியர் empObj_W, empObj_R;

// கோப்பு திறந்திருக்கும்
binOutFile_Handler.திறந்த('ஊழியர். டேட்', ஐஓஎஸ்::வெளியே |ஐஓஎஸ்::பைனரி);

// கோப்பு திறந்திருக்கிறதா என்று சோதிக்கவும்
என்றால்(!binOutFile_Handler)
{
செலவு << 'கோப்பு திறக்கப்படவில்லை!';
வெளியேறு(1);
}

// empObj_W ஐ துவக்கவும்
empObj_W.emp_id = 1512;

// கோப்பில் எழுதுங்கள்
binOutFile_Handler.எழுது((கரி *) &empObj_W,அளவு(பணியாளர்));
binOutFile_Handler.நெருக்கமான();

என்றால்(!binOutFile_Handler.நல்ல())
{
செலவு << 'பைனரி கோப்பை எழுதும் போது பிழை ஏற்பட்டது!' <<endl;
வெளியேறு(2);
}

// இப்போது, ​​ஊழியர்.டாட் கோப்பைப் படிப்போம்
binInFile_Handler.திறந்த('ஊழியர். டேட்', ஐஓஎஸ்::இல் |ஐஓஎஸ்::பைனரி);
// கோப்பு திறந்திருக்கிறதா என்று சோதிக்கவும்
என்றால்(!binInFile_Handler)
{
செலவு << 'கோப்பு திறக்கப்படவில்லை!';
வெளியேறு(3);
}

// பைனரி கோப்பின் உள்ளடக்கத்தைப் படியுங்கள்
binInFile_Handler.படி((கரி *) &empObj_R,அளவு(பணியாளர்));
binInFile_Handler.நெருக்கமான();

என்றால்(!binInFile_Handler.நல்ல())
{
செலவு << 'பைனரி கோப்பைப் படிக்கும்போது பிழை ஏற்பட்டது!' <<endl;
வெளியேறு(4);
}

// empObj_R இன் வெளியீட்டை அச்சிடவும்
செலவு << பணியாளர் விவரம்: ' <<endl;
செலவு << ஊழியர் ஐடி: ' <<empObj_R.emp_id <<endl;

திரும்ப 0;
}

முடிவுரை

கோப்புகள் முக்கியமாக தரவைச் சேமிக்கப் பயன்படுகின்றன, மேலும் அவை நிஜ உலக நிரலாக்கத்தில் முக்கிய பங்கு வகிக்கின்றன. இந்த கட்டுரையில், C ++ நிரலாக்க மொழியுடன் பல்வேறு கோப்பு செயல்பாடுகளை எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் பல எடுத்துக்காட்டுகள் மூலம் காண்பித்தோம். மேலும், உரை கோப்புகள் மற்றும் பைனரி கோப்புகள் இரண்டிலும் தரவை எவ்வாறு படிக்கலாம் மற்றும் எழுதலாம் என்பதை நாங்கள் உங்களுக்குக் காண்பித்தோம்.