Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

Man reikia naudojant c++ kalbą nuskaityt kas yra faile ir paskiau tikrint ar yra tam tikri dalykai, tai aš atidarau su fopen, o skaitau su

 

file = fopen( .... );

char KasIrasyta[4000];
	fread(KasIrasyta, 4000, 4000, file);

 

Tai kaip man dabar ieškoti tam tikrų dalykų šitam faile, bet tai tenais ne pastovus tekstas, o pastoviai gali kist (kurio reik ieškot) ir aišku apskritai funkciją su kuria eitų ieškot.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

http://www.cplusplus.com/reference/cstring/memcmp/

 

Dar yra funkcijos stringams (strstr ir pan.), bet kadangi skaitai su binary skirtomis funkcijomis (fread(), o ne., pvz, fgets), tai tavo nuskaitytiems duomenims trūks NUL baito ir jos normaliai neveiks.

 

Dar: jei jau dirbi su C++, o ne C, tai juk pilnai gali naudoti C++ I/O įrankius (fstream, string) vietoj C bibliotekos.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bet tam faile tai tekstai naujom eilutėm eina tarkim:

 

Tekstas1

Tekstas2

Tekstas3

Lvfgfgf

Pqrtrb

Lfgertert

 

O čia strcmp tai čia palygint du tekstus. man labiau ieškot reikia atitikmenų su tam tikru mano tekstu kaip minėjau kaip teksto ieškomas.

Redagavo audriuslio
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai ir skaityk eilutėmis (fgets). Bus daug paprasčiau – skaitymas pats sustos ties nauja eilute, pridės NUL simbolį. C++ atitikmuo būtų getline(). O fread() yra bendro pobūdžio funkcija, kuri skaito tiek baitų, kiek liepei, ir viskas.

 

Nežinau, kokių „atitikmenų“ šiuo atveju, bet, manau, būtent strstr() tau pravers.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tas fgets tai vienos eilutės tiktais tai man netinka. O tas strstr

Skaityk dar kart ir perskaitys kitą eilutę... Ir t.t.

 

strstr' none of the 2 overloads could convert all the argument types

Parodyk kodą? Abu argumentai turėtų būti char*.

 

Apskritai tikslas yra toks, kad neleist įrašyt tokio pat įrašo jeigu jis jau yra įrašytas.

Kai jau suskaldai eilutėmis, tam labai tiktų aibės (set) duomenų struktūra, kadangi ji leidžia tikrinti, ar narys yra aibėje O(1) laike.

http://en.cppreference.com/w/cpp/container/set

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...