Otvaranje datoteke. Što je ekstenzija datoteke C? Operatori uključivanja i izdvajanja

Tekstualne datoteke

Razmotrimo suradnju s tekstualna datoteka u C-u s primjerom. Stvorite tekstualnu datoteku na disku C pod nazivom TextFile.txt. U ovu datoteku upišite sljedeće retke:

Niz_1 123 Niz_11, 456
Niz_2
Niz_3

Spremite datoteku.

A ovo je kod za C program koji otvara našu datoteku i čita retke iz nje:

/* *Autor: @author Subbotin B.P..h> #include #define LEN 50 int main(void) ( puts("Operacije tekstualne datoteke"); char cArray; FILE *pTextFile = fopen("C:\\TextFile.txt", "r"); if(pTextFile == NULL) ( puts("Problemi"); return EXIT_FAILURE; ) while(fgets(cArray, LEN, pTextFile) != NULL) ( printf("%s", cArray); ) fclose(pTextFile); return EXIT_SUCCESS; )

Za otvaranje tekstualne datoteke u C-u upotrijebite funkciju fopen:

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

Prvi argument funkcije fopen ukazuje na datoteku, a drugi kaže da je datoteka otvorena za čitanje iz nje.

Čitamo retke pomoću funkcije fgets:

fgets(cArray, LEN, pTextFile);

prvi argument funkcije fgets ukazuje na niz znakova u koji će primljeni nizovi biti pohranjeni, drugi argument je maksimalan iznos znakova za čitanje, treći je naša datoteka.

Nakon završetka rada s datotekom potrebno ju je zatvoriti:

fclose(pTekstualnaDatoteka);

Dobivamo:

U redovima se pojavljuju i ruska slova.

Usput, napravio sam ovaj program u Eclipseu. Možete vidjeti kako raditi s C/C++ u Eclipseu.

Dakle, otvorili smo i pročitali podatke iz tekstualne datoteke.

Sada ćemo naučiti kako programski stvoriti tekstualnu datoteku i pisati podatke u nju.

/* Autor: @author Subbotin B.P..h> #include int main(void) ( FILE *pTextFile = fopen("C:\\TextFileW.txt", "w"); char *cString = "Ovo je niz"; char cNewLine = "\n"; int nVal = 123 ; if(pTextFile == NULL) ( puts("Problemi"); return EXIT_FAILURE; ) fprintf(pTextFile, "%s%c", cString, cNewLine); fprintf(pTextFile, "%d", nVal); return EXIT_SUCCESS ;)

Napravite tekstualnu datoteku za pisanje podataka u:

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

ako datoteka već postoji, otvorit će se i svi podaci iz nje će biti izbrisani.

C-string cString i broj nVal program zapisuje u tekstualnu datoteku. cNewLine je jednostavno nova linija.

Zapisujemo podatke u tekstualnu datoteku pomoću funkcije fprintf:

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

prvi argument ovdje je naša datoteka, drugi je niz formata, treći ili više je broj argumenata potrebnih za ovaj format.

Nadamo se da smo vam pomogli riješiti problem s datotekom C. Ako ne znate gdje možete preuzeti aplikaciju s našeg popisa, kliknite na poveznicu (ovo je naziv programa) - pronaći ćete više detaljne informacije o tome gdje preuzeti sigurnu instalacijsku verziju potrebne aplikacije.

Što bi još moglo uzrokovati probleme?

Možda postoji više razloga zašto ne možete otvoriti C datoteku (ne samo nedostatak odgovarajuće aplikacije).
Prvo- datoteka C možda je netočno povezana (nekompatibilna) s instalirana aplikacija za njegovo održavanje. U tom slučaju morate sami promijeniti ovu vezu. Da biste to učinili, desnom tipkom miša kliknite C datoteku koju želite urediti, kliknite opciju "Otvoriti s" a zatim s popisa odaberite program koji ste instalirali. Nakon ove radnje problemi s otvaranjem C datoteke trebali bi u potpunosti nestati.
Drugo- datoteka koju želite otvoriti možda je jednostavno oštećena. U tom bi slučaju bilo najbolje pronaći njegovu novu verziju ili ga ponovno preuzeti s istog izvora (možda iz nekog razloga u prethodna sesija Preuzimanje C datoteke nije dovršeno i ne može se ispravno otvoriti).

Želite li pomoći?

Ako imate dodatne informacije o ekstenziji datoteke C, bit ćemo vam zahvalni ako ih podijelite s korisnicima naše stranice. Upotrijebite donji obrazac i pošaljite nam svoje podatke o C datoteci.

Ako ste instalirali na svoje računalo antivirusni program Limenka skenirati sve datoteke na vašem računalu, kao i svaku datoteku pojedinačno. Možete skenirati bilo koju datoteku klikom desni klik mišem na datoteku i odabirom odgovarajuće opcije za skeniranje datoteke na viruse.

Na primjer, na ovoj slici je istaknuto datoteka moja-datoteka.c, tada morate desnom tipkom miša kliknuti ovu datoteku i odabrati opciju u izborniku datoteka "skeniraj s AVG-om". Kada odaberete ovu opciju, AVG Antivirus će se otvoriti i izvršiti skeniranje ovu datoteku za prisutnost virusa.


Ponekad se zbog toga može pojaviti pogreška neispravna instalacija softver , što može biti posljedica problema do kojeg je došlo tijekom postupka instalacije. To može ometati vaš operativni sustav povežite svoju C datoteku s ispravnom aplikacijom softver , utječući na tzv "asocijacije ekstenzija datoteka".

Ponekad jednostavno ponovno instaliranje UNIX Compact File Achive može riješiti vaš problem ispravnim povezivanjem C-a s UNIX Compact File Achive. U drugim slučajevima mogu nastati problemi s pridruživanjem datoteka loše programiranje softvera programera i možda ćete morati kontaktirati programera za dodatnu pomoć.


Savjet: Pokušajte nadograditi UNIX Compact File Achive na Najnovija verzija kako biste bili sigurni da imate instalirane najnovije zakrpe i ažuriranja.


Ovo se može činiti previše očiglednim, ali često sama datoteka C može uzrokovati problem. Ako ste datoteku primili u privitku E-mail ili ste ga preuzeli s web stranice i proces preuzimanja je prekinut (na primjer, nestanak struje ili drugi razlog), datoteka se može oštetiti. Ako je moguće, pokušajte nabaviti novu kopiju C datoteke i pokušajte je ponovno otvoriti.


Pažljivo: Oštećena datoteka može uzrokovati kolateralnu štetu prethodnoj ili postojećoj malware na vašem računalu, stoga je vrlo važno da ažurirani antivirusni program stalno radi na vašem računalu.


Ako je vaša datoteka C koji se odnose na hardver na vašem računalu da otvorite datoteku koja vam može zatrebati ažuriranje upravljačkih programa uređaja povezan s ovom opremom.

Ovaj problem obično povezan s vrstama medijskih datoteka, koji ovise o uspješnom otvaranju hardvera unutar računala, npr. zvučna kartica ili video kartice. Na primjer, ako pokušavate otvoriti audio datoteku, ali je ne možete otvoriti, možda ćete morati ažurirati upravljačke programe zvučne kartice.


Savjet: Ako kada pokušate otvoriti C datoteku dobijete Poruka o pogrešci datoteke .SYS, problem bi vjerojatno mogao biti povezan s oštećenim ili zastarjelim upravljačkim programima uređaja koje je potrebno ažurirati. Ovaj proces može se olakšati korištenjem softvera za ažuriranje upravljačkih programa kao što je DriverDoc.


Ako koraci ne riješe problem i još uvijek imate problema s otvaranjem C datoteka, to može biti zbog nedostatak dostupnih resursi sustava . Neke verzije C datoteka mogu zahtijevati značajnu količinu resursa (npr. memorija/RAM, računalna snaga) za ispravno otvaranje na vašem računalu. Ovaj se problem često pojavljuje ako koristite prilično staro računalo. Hardver a ujedno i puno noviji operativni sustav.

Ovaj se problem može pojaviti kada računalo ima poteškoća s dovršavanjem zadatka jer operacijski sustav(i druge usluge koje rade u pozadini) mogu troše previše resursa za otvaranje C datoteke. Pokušajte zatvoriti sve aplikacije na računalu prije otvaranja UNIX Compact File Achive. Oslobađanje svih dostupnih resursa na vašem računalu pružit će najbolje uvjete za pokušaj otvaranja C datoteke.


Ako ti dovršio sve gore opisane korake a vaša C datoteka se i dalje neće otvoriti, možda ćete morati pokrenuti ažuriranje opreme. U većini slučajeva, čak i pri korištenju starijih verzija hardvera, procesorska snaga može biti više nego dovoljna za većinu prilagođene aplikacije(osim ako ne radite puno CPU intenzivnog posla kao što je 3D renderiranje, financijsko/znanstveno modeliranje ili multimedijski intenzivan posao). Tako, vjerojatno je da vaše računalo nema dovoljno memorije(češće se naziva "RAM" ili radna memorija) za izvođenje zadatka otvaranja datoteke.

Datoteke omogućuju korisniku čitanje velikih količina podataka izravno s diska bez potrebe za unosom s tipkovnice. Postoje dvije glavne vrste datoteka: tekst i binarni.

Tekst pozivaju se datoteke koje se sastoje od bilo kojih znakova. Organizirani su u retke od kojih svaki završava znakom " kraj reda". Kraj same datoteke označen je simbolom " kraj datoteke". Prilikom pisanja informacija u tekstualnu datoteku, koja se može pregledavati pomoću bilo kojeg uređivač teksta, svi se podaci pretvaraju u vrstu znakova i pohranjuju u obliku znakova.

U binarni U datotekama se informacije čitaju i zapisuju u obliku blokova određene veličine, u koje se mogu pohraniti podaci bilo koje vrste i strukture.

Za rad s datotekama, posebne vrste podataka tzv potoci. Teći ifstream koristi se za rad s datotekama u načinu čitanja i ofstream u načinu snimanja. Za rad s datotekama u načinu pisanja i čitanja koristi se tok fstream.

U C++ programima, kada radite s tekstualnim datotekama, morate uključiti biblioteke iostream I fstream.

Da biste upisali podatke u tekstualnu datoteku, morate:

  1. opisati varijablu tipa ofstream.
  2. otvoren.
  3. izlaz informacija u datoteku.
  4. svakako zatvorite datoteku.

Da biste pročitali podatke iz tekstualne datoteke, morate:

  1. opisati varijablu tipa ifstream.
  2. otvori datoteku pomoću funkcije otvoren.
  3. čita informacije iz datoteke, pri čitanju svakog podatka potrebno je provjeriti je li dosegnut kraj datoteke.
  4. zatvorite datoteku.

Zapisivanje informacija u tekstualnu datoteku

Kao što je ranije spomenuto, da biste počeli raditi s tekstualnom datotekom, trebate opisati varijablu poput ofstream. Na primjer, ovako:

struja F;

Stvorit će se varijabla F za pisanje informacija u datoteku. U sljedećoj fazi, datoteka se mora otvoriti za pisanje. Općenito, operator otvaranja streama izgledat će ovako:

F.otvoren("datoteka", način rada);

Ovdje F- varijabla opisana kao ofstream, datoteka- puni naziv datoteke na disku, način rada- način rada s datotekom koja se otvara. Imajte na umu da kada navodite puni naziv datoteke, morate koristiti dvostruku kosu crtu. Za pristup, na primjer, datoteci accounts.txt, koji se nalazi u mapi stranice na disku D, u programu morate navesti: D:\\sites\\ računi.txt.

Datoteka se može otvoriti u jednom od sljedećih načina:

  • ios::in- otvorite datoteku u načinu čitanja podataka; način je zadani način za niti ifstream;
  • ios::out- otvorite datoteku u načinu snimanja podataka (u tom slučaju podaci o postojećoj datoteci se uništavaju); način je zadani način za niti ofstream;
  • ios::aplikacija- otvoriti datoteku u načinu upisa podataka na kraj datoteke;
  • ios::jesti- prelazak na kraj već otvorene datoteke;
  • ios::trunc- očistite datoteku, to se također događa u ios::out modu;
  • ios::nocreate- ne izvoditi operaciju otvaranja datoteke ako ona ne postoji;
  • ios::noreplace- ne otvarajte postojeću datoteku.

Parametar načina može biti odsutan, u kojem slučaju se datoteka otvara u zadanom načinu za ovaj tok.

Nakon uspješnog otvaranja datoteke (u bilo kojem načinu) u varijabli F bit će pohranjeni pravi, inače lažno. To će vam omogućiti da provjerite ispravnost operacije otvaranja datoteke.

Otvorite datoteku (uzmimo datoteku kao primjer D:\\sites\\ računi.txt) u načinu snimanja na jedan od sljedećih načina:

Nakon otvaranja datoteke u načinu snimanja, ona će se stvoriti prazna datoteka, u koji se mogu snimati informacije.

Ako želite otvoriti postojeću datoteku u načinu dodavanja, trebali biste koristiti vrijednost ios::aplikacija.

Nakon što otvorite datoteku u načinu snimanja, u nju možete pisati na isti način kao i na ekran, samo umjesto standardnog izlaznog uređaja cout morate navesti naziv otvorene datoteke.

Na primjer, za pisanje u stream F varijabla a, izlazna izjava će izgledati ovako:

F<

Za serijski izlaz za strujanje G varijable b, c, d Izlazna izjava će postati ovakva:

G<

Zatvaranje toka se vrši pomoću operatora:

F.zatvori();

Kao primjer, razmotrite sljedeći problem.

Problem 1

Stvorite tekstualnu datoteku D:\\ stranice\\računi .txt i upišite u njega n realni brojevi.

Riješenje

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#include "stdafx.h"
#uključi
#uključi
#uključi
korištenje imenskog prostora std;
int main()
{

int i, n;
dvostruko a;
//opisuje tok za pisanje podataka u datoteku
toka f;
//otvorite datoteku u načinu pisanja,
//ios::out način je postavljen prema zadanim postavkama
f.open("D: \\sites\\accounts.txt", ios::out ) ;
//unesite broj realnih brojeva
cout<< «n=» ; cin >>n;
//petlja za unos realnih brojeva
//i zapišite ih u datoteku
za (i= 0; i< n; i++ )
{
cout<< «a=» ;
//unesite broj
cin >> a;
f<< a<< «\t «;
}
//zatvaranje toka
f.zatvori();
sustav("pauza");
vratiti 0;
}

Čitanje informacija iz tekstualne datoteke

Kako biste pročitali informacije iz tekstualne datoteke, morate opisati varijablu poput ifstream. Nakon toga morate otvoriti datoteku za čitanje pomoću operatora otvoren. Ako imenujete varijablu F, tada će prva dva operatora biti ovakva:

Nakon što otvorite datoteku u načinu čitanja, iz nje možete čitati informacije na isti način kao i s tipkovnice, samo umjesto cin potrebno je navesti naziv streama iz kojeg će se podaci čitati.

Na primjer, za čitanje podataka iz streama F u varijablu a, ulazna izjava će izgledati ovako:

F>>a;

Dva broja u uređivaču teksta smatraju se razdvojenima ako se između njih nalazi barem jedan od znakova: razmak, tabulator, kraj retka. Dobro je kada programer unaprijed zna koliko i koje vrijednosti su pohranjene u tekstualnoj datoteci. Međutim, često je poznata samo vrsta vrijednosti pohranjenih u datoteci, a njihov broj može varirati. Da biste riješili ovaj problem, potrebno je čitati vrijednosti iz datoteke jednu po jednu, a prije svakog čitanja provjeriti je li dosegnut kraj datoteke. A funkcija će vam pomoći u tome F.eof(). Ovdje F- naziv niti funkcija vraća Booleovu vrijednost: pravi ili lažno, ovisno o tome je li dosegnut kraj datoteke.

Stoga se petlja za čitanje sadržaja cijele datoteke može napisati ovako:

Da biste bolje usvojili materijal, razmotrite problem.

Problem 2

Tekstualna datoteka D:\\game\\accounts.txt pohranjuje stvarne brojeve, prikazuje ih na ekranu i izračunava njihov broj.

Riješenje

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

#include "stdafx.h"
#uključi
#uključi
#uključi
#uključi
korištenje imenskog prostora std;
int main()
{
setlocale(LC_ALL, "RUS");
int n= 0 ;
lebdjeti a;
ftok F;
//otvorite datoteku u načinu čitanja
F.open("D: \\sites\\accounts.txt") ;
//ako je datoteka ispravno otvorena, tada
ako (F)
{
//petlja za čitanje vrijednosti iz datoteke; izvođenje petlje će biti prekinuto,
//kada dođemo do kraja datoteke, u ovom slučaju F.eof() će vratiti true.
dok (!f.eof())
{
//čitanje sljedeće vrijednosti iz toka F u varijablu a
F >> a;
//ispiši vrijednost varijable a na ekran
cout<< a<< «\t «;
//povećati broj pročitanih brojeva
n++ ;
}
//zatvaranje toka
F.zatvori();
//unesite na ekran broj pročitanih brojeva
cout<< «n=» << n<< endl;
}
//ako je otvaranje datoteke bilo netočno, onda izlaz
//poruke o nepostojanju takve datoteke
else cout<< " Mapa ne postoji"<< endl;
sustav("pauza");
vratiti 0;
}

Ovo zaključuje relativno opsežnu lekciju o tekstualnim datotekama. Sljedeći članak će pogledati metode manipulacije koje se koriste za obradu.