Призмт цацрагийн замыг байгуул. Степанова В.А. Геометрийн оптикийн элементүүд

fopen() функц нь урсгалыг нээж, файлыг тухайн урсгалтай холбож, дараа нь FILE заагчийг тухайн урсгал руу буцаана. Ихэнх тохиолдолд файлыг дискний файл гэж үздэг. fopen() функц нь дараах прототиптэй байна:

FILE *fopen(const char *файлын нэр, const char *горим);

Mode нь файлыг нээхэд шаардлагатай горимыг агуулсан мөрийг заадаг. Borland C++ горимын хүчинтэй утгыг хүснэгтэд үзүүлэв. файлын нэр нь хүчинтэй файлын нэрийг агуулсан тэмдэгтийн мөр байх ёстой үйлдлийн систем, мөн замын заалт агуулж болно.

fopen() функц нь үндсэн төрлийн FILE руу заагчийг буцаана. Энэ заагч нь файлыг тодорхойлдог бөгөөд ихэнх функцэд ашиглагддаг. файлын систем. Та өөрөө үүнийг хэзээ ч өөрчлөх ёсгүй. Хэрэв файлыг нээх боломжгүй бол функц нь хоосон заагчийг буцаана.

Хүснэгтээс харахад файлыг текст эсвэл хоёртын горимд нээх боломжтой. Текстийн горимд таныг бичих үед тэрэгний буцах болон мөр дамжуулах дарааллыг шинэ мөрийн тэмдэгт болгон хөрвүүлнэ. Гаралтын хувьд эсрэгээр нь: шинэ мөрийн тэмдэгтийг тэрэгний буцах болон мөрийн тэжээл болгон хөрвүүлдэг. Энэ орчуулга хоёртын файлд тохиолддоггүй. Хэрэв горимын аргумент дээр t, b хоёрын аль нь ч тодорхойлогдоогүй бол файлын текст/хоёртын төлөвийг Borland C++-д тодорхойлсон _fmode глобал хувьсагчийн утгаар тодорхойлно. Анхдагчаар fmode нь O_TEXT, өөрөөр хэлбэл текст горимыг тохируулсан байна. Хэрэв та _fmode-г O_BINARY болгож тохируулбал файлууд хоёртын горимд нээгдэнэ. (Эдгээр макрог fcntl.h-д тодорхойлсон.) Мэдээжийн хэрэг, тодорхой t эсвэл b ашиглах нь _fmode хувьсагчтай холбоотой нөлөөллийг арилгадаг. Нэмж дурдахад _fmode нь зөвхөн Borland бүтээгдэхүүнүүдэд зориулагдсан. Энэ нь ANSI C I/O системд тодорхойлогдоогүй байна.

Хэрэв та бичихийн тулд test нэртэй файл нээх шаардлагатай бол дараахь зүйлийг бичнэ үү.

Fp = fopen("туршилт", "w");

fp хаана байна төрөл хувьсагчФАЙЛ *. Гэсэн хэдий ч дараахь зүйлийг харах нь түгээмэл байдаг.

If((fp = fopen("test", "w"))==NULL) (
puts("Файлыг нээх боломжгүй.");
гарах(1);
}

Энэ аргафайлыг нээх үед алдааг илрүүлэх боломжийг олгодог, жишээлбэл, бичих хамгаалалт байгаа эсэх эсвэл байхгүй байна чөлөөт зайдиск дээр.

Хэрэв fopen()-г файлыг нээхэд ашигладаг бол заасан нэртэй өмнө нь байсан бүх файл устах болно. Хэрэв заасан нэртэй файл байхгүй бол түүнийг үүсгэнэ.

Хэрэв та файлын төгсгөлд мэдээлэл хавсаргах шаардлагатай бол a горимыг ашиглах хэрэгтэй. Хэрэв файл байхгүй бол түүнийг үүсгэнэ.

Уншихын тулд файлыг нээхийн тулд файл байгаа эсэхийг шаарддаг. Хэрэв файл байхгүй бол алдаа гарна. Хэрэв файл унших/бичих үйлдэл хийхээр нээгдсэн бол хэрэв байгаа бол устгагдахгүй, хэрэв байхгүй бол үүсгэнэ.

Хүснэгт: Хүчинтэй утгуудгоримууд

Утга

Уншихаар файлыг нээнэ. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Бичих файл үүсгэнэ. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Файлд хавсаргана. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Уншихын тулд хоёртын файлыг нээнэ.

Хоёртын файлыг бичихэд нээнэ.

Хоёртын файлд хавсаргана.

Унших/бичих файлыг нээнэ. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Унших/бичих файл үүсгэдэг. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Унших/бичих файл хавсаргах буюу үүсгэх. (Текст файл хэлбэрээр анхдагчаар нээгдэнэ.)

Унших/бичих хоёртын файлыг нээнэ.

Унших/бичих хоёртын файл үүсгэнэ.

Унших/бичих хоёртын файлыг хавсаргах буюу үүсгэнэ.

Бичих текст файл үүсгэдэг.

Текст файлд хавсаргана.

Уншихын тулд текст файлыг нээнэ.

Унших/бичих текст файл үүсгэдэг.

Унших/бичих текст файлыг нээх буюу үүсгэдэг.

Програмистын хувьд нээлттэй файлуншиж, бичиж буй өгөгдлийн дараалал хэлбэрээр илэрхийлэгддэг. Файл нээгдэх үед энэ нь холбоотой байна I/O урсгал . Гаралтын мэдээллийг урсгал руу бичиж, оролтын мэдээллийг урсгалаас уншина.

I/O-д зориулж урсгал нээгдэх үед энэ нь stdio.h-д тодорхойлогдсон стандарт FILE бүтэцтэй холбогддог. FILE бүтэц нь агуулж байна шаардлагатай мэдээлэлфайлын тухай.

Файлыг нээх нь fopen() функцийг ашиглан хийгддэг бөгөөд энэ нь файл дээрх дараагийн үйлдлүүдэд ашиглагдах FILE төрлийн бүтэц рүү заагчийг буцаадаг.

FILE *fopen(нэр, төрөл);

нэр - нээх файлын нэр (замыг оруулаад),
type - файлд хэрхэн хандахыг тодорхойлох тэмдэгтүүдийн мөрийг заагч:

· "r" - файлыг уншихаар нээх (файл байх ёстой);

· "w" - бичихэд зориулж хоосон файл нээх; хэрэв файл байгаа бол түүний агуулга алга болно;

· "a" - файлыг эцэс хүртэл бичихийн тулд нээх (хавсрах); хэрэв байхгүй бол файл үүсгэгдэнэ;

· "r+" - унших, бичих файлыг нээх (файл байх ёстой);

· "w+" - унших, бичихэд зориулж хоосон файл нээх; хэрэв файл байгаа бол түүний агуулга алга болно;

· "a+" - файлыг унших, хавсаргах файлыг нээх;

Буцах утга нь нээлттэй урсгалын заагч юм. Хэрэв алдаа илэрсэн бол NULL буцаана.

fclose() функц нь fopen() функцийг ашиглан нээсэн файлуудтай холбоотой урсгал эсвэл урсгалыг хаадаг. Хаах урсгалыг fclose() функцын аргументаар тодорхойлно.

Буцах утга: дамжуулалтыг амжилттай хаасан бол 0 утга; алдаа гарсан тохиолдолд тогтмол EOF.

#оруулна
int main()

char name="my.txt";

if(fp = fopen(нэр, "r")!=NULL)

// файлыг нээх боломжтой байсан уу?
... // өгөгдөл дээр шаардлагатай үйлдлүүд

else printf("Файлыг нээж чадсангүй");

Файлаас тэмдэгт уншиж байна:

char fgetc(урсгал);

Функцийн аргумент нь FILE төрлийн урсгал руу заагч юм. Уг функц нь уншсан тэмдэгтийн кодыг буцаана. Хэрэв файлын төгсгөлд хүрсэн эсвэл алдаа гарвал тогтмол EOF буцаана.
Файлд тэмдэг бичих:

fputc (тэмдэгт, урсгал);

Функцийн аргументууд нь FILE төрлийн урсгалын тэмдэгт ба заагч юм. Уг функц нь уншсан тэмдэгтийн кодыг буцаана.

fscanf() болон fprintf() функцууд нь scanf() болон printf() функцтэй төстэй боловч өгөгдлийн файлуудтай ажилладаг бөгөөд эхний аргумент нь файлын заагчтай.

fscanf(урсгал, "Оролтын формат", аргументууд);
fprintf(урсгал, "Гаралтын формат", аргументууд);

fgets() болон fputs() функцууд нь файлуудтай ажиллахад зориулсан gets() болон puts() функцуудтай ижил төстэй мөр оруулах/гаралт хийх зориулалттай;

fgets(Мөр хүртэлх заагч, тэмдэгтийн тоо, урсгал);

Тэмдэгтүүдийг урсгалаас мөрөнд орсон шинэ мөрийн тэмдэгт "\n" унших хүртэл эсвэл урсгал EOF дуусах хүртэл эсвэл хамгийн их тэмдэгт унших хүртэл уншина. Үр дүн нь мөрийн заагч дээр тавигдаж, "\0" гэсэн хоосон тэмдэгтээр төгсдөг. Функц нь мөрийн хаягийг буцаана.

fputs(Заагчаас мөр, урсгал);

Одоогийн байрлалаас мөрийг урсгал руу хуулна. Төгсгөлийн хоосон тэмдэгтийг хуулахгүй.
Жишээ Дугаарыг оруулаад s1.txt файлд хадгална уу. s1.txt файлын дугаарыг уншаад 3-аар нэмээд s2.txt файлд хадгална.

Текст файлууд

Си хэл дээрх текст файлтай ажиллах жишээг авч үзье. C диск дээр TextFile.txt нэртэй текст файл үүсгэ. Энэ файлд дараах мөрүүдийг бичнэ үү:

Мөр_1 123 Мөр_11, 456
Мөр_2
Мөр_3

Файлыг хадгална уу.

Энэ бол манай файлыг нээж, түүнээс мөрүүдийг уншдаг C программын код юм.

/* *Зохиогч: @author Subbotin B.P..h> #include #define LEN 50 int main(void) ( puts("Текст файлын үйлдлүүд"); char cArray; FILE *pTextFile = fopen("C:\\TextFile.txt", "r"); if(pTextFile == NULL) ( puts("Problems"); return EXIT_FAILURE; ) while(fgets(cArray, LEN, pTextFile) != NULL) ( printf("%s", cArray); ) fclose(pTextFile); EXIT_SUCCESS буцаана;

Текст файлыг C хэл дээр нээхийн тулд fopen функцийг ашиглана уу:

FILE *pTextFile = fopen("C:\\TextFile.txt", "r");

Fopen функцийн эхний аргумент нь файлыг зааж өгөх бөгөөд хоёр дахь нь файлыг уншихад нээлттэй гэж хэлдэг.

Бид fgets функцийг ашиглан мөрүүдийг уншина:

fgets(cArray, LEN, pTextFile);

fgets функцийн эхний аргумент нь хүлээн авсан мөрүүдийг хадгалах тэмдэгтийн массивыг заадаг бол хоёр дахь аргумент нь дээд хэмжээУнших тэмдэгтүүд, гурав дахь нь бидний файл юм.

Файлтай ажиллаж дууссаны дараа та үүнийг хаах хэрэгтэй:

fclose(pTextFile);

Бид авах:

Мөн мөрөнд орос үсэг харагдана.

Дашрамд хэлэхэд би энэ програмыг Eclipse дээр хийсэн. Та Eclipse дээр C/C++ хэл дээр хэрхэн ажиллахыг харж болно.

Тиймээс бид текст файлаас өгөгдлийг нээж уншсан.

Одоо хэрхэн программчлан текст файл үүсгэж, түүнд өгөгдөл бичих талаар сурцгаая.

/* Зохиогч: @author Subbotin B.P..h> #include int main(void) ( FILE *pTextFile = fopen("C:\\TextFileW.txt", "w"); char *cString = "Энэ бол мөр"; char cNewLine = "\n"; int nVal = 123 ; if(pTextFile == NULL) ( puts("Problems"); return EXIT_FAILURE; ) fprintf(pTextFile, "%s%c", cString, cNewLine );

Мэдээлэл бичихийн тулд текст файл үүсгэ:

FILE *pTextFile = fopen("C:\\TextFileW.txt", "w");

хэрэв файл аль хэдийн байгаа бол түүнийг нээж, бүх өгөгдөл устах болно.

C-string cString болон nVal тоог программ текст файлд бичдэг. cNewLine бол зүгээр л шинэ мөр юм.

Бид fprintf функцийг ашиглан текст файлд өгөгдөл бичдэг.

fprintf(pTextFile, "%s%c", cString, cNewLine);

Энд байгаа эхний аргумент нь бидний файл, хоёр дахь нь форматын мөр, гурав дахь буюу түүнээс дээш нь энэ форматад шаардлагатай аргументуудын тоо юм.



Танд нийтлэл таалагдсан уу? Найзуудтайгаа хуваалцаарай!