sarlavhali faylni kiritish zarur. Kiritish/chiqarishda ma'lumotlar baytlar oqimi kabi qaraladi. Jismonan oqim fayl yoki asbobdan iborat (masalan, faylning xususiy xoli sifatida qaraladigan klaviatura yoki displey).
Oqimni ochish
Oqim bilan ishlash uni ochishdan boshlanadi. Oqimni o'qish uchun va/yoki yozuvda ikkilik yoki matn rejimlarda ochish mumkin. Oqimni ochish funksiyasi formati:
FILE* fopen(const char* filename. const char* mode);
Oqimning muvaffaqiyatli ochishda ishlash uchun butun zarur butun axborotni saqlovchi FILE tipidagi oldindan aniqlangan strukturaga ko'rsatgichni qaytaradi yoki aks holda NULL ni. Birinchi parametr – C-satr ko'rinishdagi ochiluvchi fayl nomi, ikkinchisi – faylni ochish rejimi.
“r” – fayl o'qish uchun ochiladi;
“w” – yozish uchun bo'sh fayl ochiladi (agar fayl mavjud bo'lsa, o'chiriladi);
“a” – fayl uning oxiriga axborotni qo'shish uchun ochiladi;
“r+” – fayl o'qish va yozish uchun ochiladi (fayl mavjud bo'lishi lozim);
“w+” – o'qish va yozish uchun bo'sh fayl ochiladi (agar fayl mavjud bo'lsa, o'chiriladi);
“a+” – fayl ma'lumotni uning oxiriga qo'shish uchun va o'qish uchun ochiladi.
Ochish rejimiga o'tish simvollarni yangi satrga o'tishga qaytish ishlash bilan t (matn rejim) yoki b (ikkilik rejim) simvollarini o'z ichiga oladi. Jimlik bo'yicha fayl matn rejimida ochiladi, bunda “katerkani qaytarish” va “satrni ko'chirish” (0x13 0x10) simvollar kombinatsiyasi kiritishda satr ko'chirishidagi birlamchi simvoliga almashtiriladi (chiqarishda teskari almashtirish bajariladi). Ikkilik rejimida bu almashtirishlar bajarilmaydi.
Misol:
FILE *f = fopen("d: \\ cpp\\data", "rb+");
f ko'rsatgich oqim bilan keyingi amallarda foydalaniladi. Uni kiritish/chiqarish funksiyalariga parametr sifatida uzatiladi.
U bilan oqimni ochishda bufer deb ataluvchi xotira sohasi bog'lanadi. Chiqarishda barcha axborot buferga yuboriladi va u yerda bufer to'lguncha yoki oqim yopilguncha to'planadi. Buferlashtirish tashqi qurilmalar bilan tezroq va samaraliroq axborot almashishga imkon beradi. Dasturning favqulotda yakunlanishida chiquvchi bufer yuklangan bo'lmasligi mumkin va ma'lumotlar yo'qolishi mumkin. setbuf va setvbuf funksiyalar yordamida buferning o'lchovlari va mavjudligini boshqarish mumkin.
Dastur boshida ochiladigan beshta oldindan ma'lum oqimlar mavjud: stdin standart kiritish, stdout standart chiqarish, stderr xatolar haqida xabarlarni standart chiqarish, stdaux standart qo'shimcha oqim va stdprn standart chop qilish. Birinchi uchta oqim jimlik bo'yicha konsolaga taalluqli. Bu ko'rsatgichlarni oqim ko'rsatkichi talab etiladigan ixtiyoriy kiritish/chiqarish funksiyasida foydalanish mumkin.