top of page

DUOMENŲ ĮVEDIMAS IŠ TEKSTINIO FAILO

 

Kai pradinių duomenų daug, juos įvedinėti klaviatūra nėra patogu. Jei skaičiavimus norime pakartoti, pradinius duomenis tenka vesti iš naujo. Čia patogu naudoti tekstinius failus ir duomenis nuskaityti iš jų. Tekstiniuose failuose nerašomi pranešimai ir paaiškinimai, kokie duomenys ir kokia tvarka pateikiami. Rašant duomenų skaitymo iš failo sakinius, reikia iš anksto žinoti, kokia eilės tvarka faile surašyti duomenys.

 

Norint duomenis nuskaityti iš failo, reikia:

  • ​Aprašyti įvedimo iš srauto ifstream kintamąjį, pavyzdžiui:  
    ifstream  fd;

  • Programoje susieti kintamąji su tekstiniu failu, pavyzdžiui: 
    fd.open ("duomenys.txt");

  • Baigus darbą, failą būtina užverti, pavyzdžiui: 
    fd.close();

Visų įvedimo iš srauto duomenų failų kintamųjų vardus rekomenduojama pradėti rašyti fd raidėmis (f - failas, d - duomenys), tuomet programos tekste juos atpažinsime be atskiro paaiškinimo.

 

Kaip ir įvedamiems klaviatūra, duomenism iš failo skaityti naudojamas operatorius >>, tik srauto vardas cin keičiamas į įvedimo iš srauto, susijusio su duomenų failu, kintamojo vardu, pavyzdžiui:

      fd >> x;

 

Įvedimo ir išvedimo srautų, susijusių su duomenų ir rezultatų failais, priemonės aprašytos antraštiniame faile fstream. Jis perkeliamas į programą sakiniu

#include <fstream>

 

Tekstinį failą kuriame pasirinkdami File > New > Empty file

Surašome duomenis. Skaičiai rašomi vienas po kito skiriant juos tarpu.

Išsaugodami pasirenkame File > Save file, parašome failo vardą: duomenys.txt ir parenkame Įrašymo failo tipas: All files (*.*). Jei paklausia, ar prijungti failą prie projekto, renkamės "taip".

 

Pavyzdys. Iš tekstinio failo duomenys.txt nuskaitomi trys sveikieji skaičiai ir į ekraną išvedama nuskaitytų skaičių suma

 

failo duomenys.txt turinys:

 

4  25  41

 

#include <fstream>

#include <iostream>

using namespace std;

int main ()

{

   int a, b, c, sum;

   ifstream fd ("duomenys.txt");

   fd >> a >> b >> c;

   sum = a + b + c;

   fd.close ();

   cout << sum << endl;

   return 0;

}

 

bottom of page