Kiritishni qayta yo`naltirish Quyida keltirilgan namunada, agar biz ko`p qiymatlar kiritishimiz kerak bo`lsa, bu qiymatlarni klaviaturadan kiritish anchayin malol keladi. Buning uchun oddiy matnli faylda qiymatlarni bo`shliqlar bilan ajratib kiritib olishimiz va dasturni quyidagicha kod orqali ishga tushirishimiz mumkin:
NazoratchiQiymat.exe < kiritish.txt Bu ko`rsatma kiritishni qayta yo`naltirish deb yuritiladi. Dastur qiymatlarni klaviaturdan kiritishga qaraganda biroz qulayroq bo`lgan – qiymatlarni “kiritish.txt” faylidan kiritish imkonini beradi. Faraz qilaylik, faylning tarkibidagi qiymatlar quyidagilar:
2 3 4 5 6 7 8 9 12
23 32 23 45 67 89 92 12 34 35 3 1 2 4 0
Dastur sum ga 518 qiymatini ta’minlaydi. Shuni ta’kidlab o`tish kerakki, NazoratchiQiymat.exe, satrni kompilyatsiyalovchi ko`rsatma – buyrug`idan foydalangan holda olinishi mumkin:
g++ NazoratchiQiymat.cpp –o NazoratchiQiymat.exe Xuddi shunday, faylga yubora oluvchi chiqishni qayta yo`naltirish ham konsol oynaga chiqarishdan biroz farq qiladi. Chiqishni qayta yo`naltirish quyidagicha amalga oshiriladi:
NazoratchiQiymat.exe > chiqarish.txt Bu ko`rinishdagi kiritish va chiqarishni bir ko`rsatma satrida yozish mumkin:
NazoratchiQiymat.exe < kiritish.txt > chiqarish.txt Dasturni ishga tushirib, chiqarish.txt faylida nima o`zgarishlar bo`lganligini ko`rishimiz mumkin.
Barcha ma’lumotlarni fayldan o`qish Avvalgi ma’ruzada bir nechta qiymatlarni fayldan o`qishni ko`rib chiqqan edik. Agar fayldagi qiymatlar soni ko`p bo`lsa, unda sikl orqali o`qishni tashkil qilish kerak bo`ladi. Agar siz faylda qiymatlar soni qanchaligini bilmasangiz va ularning hammasi o`qilishini istasangiz, fayl so`ngini qanday aniqlaysiz? Bunday vaziyatda eof() funksiyasini chaqirish lozim. 8.5-kodli ro`yxatda “sonlar.txt” faylidagi barcha qiymatlarni o`quvchi dastur keltirilgan.
8.5-kodli ro`yxat. BarchaQiymatniOlish.cpp 1 #include 2 #include 3 using namespace std;
4
5 int main()
6 {
7 // Faylni ochish
8 ifstream sonlar("score.txt");
9
10 double sum = 0;
11 double son;
12 while (!sonlar.eof()) // Fayl oxiri bo`lmasa davom etish
13 {
14 sonlar >> son; // Ma’lumotni o`qish
15 cout << son << " "; // Ma’lumotni konsolga chiqarish
16 sum += son;
17 }
18
19 sonlar.close();
20
21 cout << "\nYig`indi = " << sum << endl;
22
23 return 0;
24 }