Ц ++

Како читати и писати у датотеку на Ц ++

Како читати и писати у датотеку на Ц ++

У овом чланку ћемо вам показати како да читате и пишете у датотеку на програмском језику Ц ++ помоћу неколико примера. Да бисмо разумели операције са датотекама Ц ++ попут читања и писања, прво морамо разумети концепт тока у Ц-у++.

Шта је ток?

Ток је једноставно ток података или знакова. Постоје две врсте токова: улазни и излазни. Улазни ток се користи за читање података са спољног улазног уређаја као што је тастатура, док се излазни ток користи за уписивање података на спољни излазни уређај као што је монитор. Датотека се може сматрати и улазним и излазним извором.

У Ц ++-у користимо ток за слање или примање података од или до спољног извора.

Уграђене класе можемо користити за приступ улазно / излазном току, тј.е., „Иос“.

Ево хијерархије класе токова програмског језика Ц ++:

Објекти „цин“ и „цоут“ се користе за читање података са тастатуре и за приказ излаза на монитору. Поред тога, „ифстреам“, што значи „улазни ток датотеке“, користи се за читање тока података из датотеке, а „офстреам“, што значи „излазни ток датотеке“, користи се за писање тока података у датотеку.

„Иострам.х ”датотека садржи све потребне стандардне класе улазно / излазних токова у програмском језику Ц ++.

Примери

Сада када разумете основе токова, размотрићемо следеће примере који ће вам помоћи да боље разумете операције датотека у Ц ++:

Пример 1: Отворите и затворите датотеку

У овом примеру програма показаћемо како да отворимо / креирамо датотеку и како да затворимо датотеку у Ц++. Као што видите у доњем програму, укључили смо библиотеку потребну за рад са датотекама.

Да бисмо отворили и затворили датотеку, потребан нам је објект протока. Затим, да бисмо читали или писали у датотеку, морамо је отворити. Укључили смо датотеку заглавља фстреам у ред број-1 да бисмо могли приступити класи класе.

Прогласили смо миФиле_Хандлер као објект протока унутар главне функције. Тада можемо користити функцију опен () за стварање празне датотеке и функцију цлосе () за затварање датотеке.

#инцлуде
коришћење простора имена стд;
инт маин ()

офстреам миФиле_Хандлер;
// Отварање датотеке
миФиле_Хандлер.опен ("Филе_1.ткт ");
// Затварање датотеке
миФиле_Хандлер.Близу();
ретурн 0;

Сада ћемо саставити програм и испитати резултате. Као што можете видети у доњем прозору за излаз, „Филе_1.ткт ”датотека је креирана након извршавања програма. Величина датотеке је нула, јер у њу нисмо уписали никакав садржај.

Пример 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.

#инцлуде
коришћење простора имена стд;
инт маин ()

офстреам миФиле_Хандлер;
// Отварање датотеке
миФиле_Хандлер.опен ("Филе_1.ткт ");
// Запис у датотеку
миФиле_Хандлер << "This is a sample test File. " << endl;
миФиле_Хандлер << "This is the second line of the file. " << endl;
// Затварање датотеке
миФиле_Хандлер.Близу();
ретурн 0;

Сада ћемо саставити горњи програм и извршити га. Као што видите доле, успешно смо уписали у датотеку Филе_1.ткт.

Пример 3: Читање из датотеке

У претходним примерима показали смо вам како да упишете садржај у датотеку. Сада, прочитајмо садржај из датотеке коју смо креирали у Примеру 2 и прикажимо садржај на стандардном излазном уређају, тј.е., монитор.

Користимо функцију гетлине () за читање комплетне линије из датотеке, а затим „цоут“ за штампање линије на монитору.

#инцлуде
#инцлуде
#инцлуде
коришћење простора имена стд;
инт маин ()

ифстреам миФиле_Хандлер;
стринг миЛине;
// Датотека отворена у режиму читања
миФиле_Хандлер.опен ("Филе_1.ткт ");
иф (миФиле_Хандлер.је отворен())

// Наставите читати датотеку
вхиле (гетлине (миФиле_Хандлер, миЛине))

// исписати ред на стандардном излазу
цоут << myLine << endl;

// Затварање датотеке
миФиле_Хандлер.Близу();

иначе

цоут << "Unable to open the file!";

ретурн 0;

Сада ћемо одштампати садржај датотеке_1.ткт помоћу следеће наредбе: цат Филе_1.ткт. Једном када компајлирамо и извршимо програм, јасно је да се излаз поклапа са садржајем датотеке. Због тога смо датотеку успешно прочитали и садржај датотеке одштампали на монитор.

Пример 4: Читање и писање у датотеку

До сада смо вам показали како да отворите, читате, пишете и затворите датотеку. У Ц ++ такође можемо истовремено читати и писати у датотеку. Да бисмо и читали и писали у датотеку, морамо добити фстреам објекат и отворити датотеку у режиму „иос :: ин“ и „иос :: оут“.

У овом примеру прво записујемо неки садржај у датотеку. Затим читамо податке из датотеке и исписујемо их на монитор.

#инцлуде
#инцлуде
#инцлуде
коришћење простора имена стд;
инт маин ()

фстреам миФиле_Хандлер;
стринг миЛине;
// Отварање датотеке
миФиле_Хандлер.опен ("Филе_1.ткт ", иос :: ин | иос :: оут);
// Проверите да ли се датотека отворила
ако(!миФиле_Хандлер)

цоут << "File did not open!";
излаз (1);

// Запис у датотеку
миФиле_Хандлер << "1. This is another sample test File. " << endl;
миФиле_Хандлер << "2. This is the second line of the file. " << endl;
миФиле_Хандлер.тражити (иос :: просити);
// Прочитајте датотеку
иф (миФиле_Хандлер.је отворен())

// Наставите читати датотеку
вхиле (гетлине (миФиле_Хандлер, миЛине))

// исписати ред на стандардном излазу
цоут << myLine << endl;

// Затварање датотеке
миФиле_Хандлер.Близу();

иначе

цоут << "Unable to open the file!";

миФиле_Хандлер.Близу();
ретурн 0;

Сада ћемо саставити и извршити програм.

Пример 5: Читање и писање у бинарну датотеку

У овом примеру ћемо прогласити класу, а затим записати објекат у бинарну датотеку. Да бисмо поједноставили овај пример, прогласили смо класу Емплоиее са јавном променљивом емп_ид. Затим ћемо прочитати бинарну датотеку и исписати излаз на монитор.

#инцлуде
#инцлуде
коришћење простора имена стд;
разред Запослени

јавно:
инт емп_ид;
;
инт маин ()

офстреам бинОутФиле_Хандлер;
ифстреам бинИнФиле_Хандлер;
Запослени емпОбј_В, емпОбј_Р;
// Отварање датотеке
бинОутФиле_Хандлер.отворен („Запослени.дат ", иос :: оут | иос :: бинарни);
// Проверите да ли се датотека отворила
ако(!бинОутФиле_Хандлер)

цоут << "File did not open!";
излаз (1);

// Иницијализација емпОбј_В
емпОбј_В.емп_ид = 1512;
// Запис у датотеку
бинОутФиле_Хандлер.врите ((цхар *) & емпОбј_В, сизеоф (Запослени));
бинОутФиле_Хандлер.Близу();
ако(!бинОутФиле_Хандлер.Добро())

цоут << "Error occured during writing the binary file!" << endl;
излаз (2);

// Сада, прочитајмо запосленог.дат
бинИнФиле_Хандлер.отворен („Запослени.дат ", иос :: ин | иос :: бинарни);
// Проверите да ли се датотека отворила
ако(!бинИнФиле_Хандлер)

цоут << "File did not open!";
излаз (3);

// Прочитајте садржај бинарне датотеке
бинИнФиле_Хандлер.реад ((цхар *) & емпОбј_Р, сизеоф (Запослени));
бинИнФиле_Хандлер.Близу();
ако(!бинИнФиле_Хандлер.Добро())

цоут << "Error occured during reading the binary file!" << endl;
излаз (4);

// Испис излаза емпОбј_Р
цоут << "Details of the Employee : " << endl;
цоут << "Employee ID : " << empObj_R.emp_id << endl;
ретурн 0;

Закључак

Датотеке се углавном користе за чување података и играју важну улогу у стварном програмирању. У овом чланку смо вам показали како да користите разне операције датотека са програмским језиком Ц ++ радећи кроз неколико примера. Поред тога, показали смо вам како читати и писати податке у текстуалне датотеке и бинарне датотеке.

Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...
Замените тастере миша другачије за различити софтвер помоћу Кс-Моусе Буттон Цонтрол
Можда вам је потребан алат који би могао да промени контролу миша са сваком апликацијом коју користите. Ако је то случај, можете испробати апликацију ...
Преглед бежичног миша Мицрософт Сцулпт Тоуцх
Недавно сам читао о Мицрософт Сцулпт Тоуцх бежични миш и одлучио да га купи. Након што сам га неко време користио, одлучио сам да са њим поделим своје...