Pereiti prie turinio

Pagalba nuskaitant vardą iš failo. c++


Rekomenduojami pranešimai

Sveiki, Esu pradedantis programuoti ir va susidūriau su bėda dariau uždavinį ir man reikia nusiskaityt du vardus iš U2.txt, bet kai nuskaitau failą man rodo, vardą ir skaičių. nu gal nelabai kaip paašikinau va U2.txt ir kodas:(parašykit kokių hint ar paaiškima kaip nuskaityt tik vardą be skaičių.)

2 3
Hermis 6 1 2
Hera 2 6 6

 

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

//konstantos
const int Cn = 50;
const int Ck = 10; //max diev vardo ilgis ir kauliukų skaičius

//FUnkcijos
void skaityti (const char fv[]);
void rasyti (const char fv[]);

//GLobalus kintamieji
char Dievai[Ck];
int ds,ks;



int main()
{
   skaityti("u2.txt");
   return 0;
}


void skaityti(const char fv[])
{
   ifstream fd(fv);
   if(!fd){
       cout<< "nepavyko nuskaityti failo";
       exit(1);
   }
   fd >> ds>>ks;
   for(int i=0;i<ds;i++)
   {
       fd.get(Dievai[Ck]);
       fd>>Dievai;
       cout<<Dievai;
   }
   fd.close();
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tau reikia skaityti viską tiesiai į struktūrą, kuri turi char/string elementą Vardas, ir sveikų skaičių masyvą.

struct dievas {
 char vardas[10];
 int taskai[MAX];
} ;

Perskaitai vieną eilutę - įdedi ją į struktūrą.

void skaitymas()
{
int i=0;
char vardas[10];
ifstream failas;
failas.open("u2.txt");
if (!failas)
{
	cout<<"Nepavyko nuskaityti failo";
	exit(1);
}
char c='a';
while (c != ' ')
{
	c = failas.get();
	vardas[i] = c;
	i++;
}
cout<<vardas;
}

 

Čia tau pavyzdukas kaip galėtum nuskaityti vardą, nes matau sunkiai sekasi tau. Skaitai po vieną simbolį, iki tol kol randi tarpą, tada jau gali pradėti skaityti skaičius. Galima gal ir gudriau sugalvot, bet taip irgi tiks.

Redagavo Nully
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taigi iš failo pirmą vardą pavyko nuskaityt tik dabar reikia ji priskirt prie Struct... Mėginau skirti tokiu būdu:

Dievai[0].vardas[Ck] = vardas;

tai neleido vėliau mėginau

Dievai[0].vardas[Ck] = *vardas;

bet sukompilino, bet vardo nepriskyrė...

Taip pat dar man sunku kaip ištraukt antrą vardą ? tipo reikia ciklą cikle varyt? ar kažką panašaus bent mąstau?

 

 

 

 

 

struct Olimpas{
   char vardas[Ck];
   int Kauliukai [Ck];

   // Rez lauk
   int taskai; // dievu taskai
   int kkl; // lyginis kauliuku sk
   int nr; // dievo nr.
};


void skaityti(const char fv[])
{
   char c;
   int i= 0;
   char vardas[Ck];
   ifstream fd(fv);
   if(!fd){
       cout<< "nepavyko nuskaityti failo";
       exit(1);
   }
   fd >> ds>>ks;
  while(c != ' ')
  {
      c= fd.get();
      vardas[i] = c;
      i++;
  }

   cout<<vardas;
   fd.close();
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Paprasčiau nuskaityti vardą galėtum taip:

 string vardas;
 fd >> vardas;  //skaito iki pirmo whitespace, t.y. tarpo

Taip, kad visą failą nuskaitytum reikęs ciklo cikle. Manau, kad būtų geriau iš pradžių pasimokyti pačios kalbos, o tik tada bandyti kažką daryti. Paskaityk apie masyvus, string, nuskaitymą ir pan.

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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