Pereiti prie turinio

[ C++ ] Reikia pagalbos su skaitymu


Rekomenduojami pranešimai

#include <iostream>
#include <fstream>

using namespace std;

const int cmax = 50;
const int cpav = 10;

struct uzsakymas{
   string pav;
   int x;
   int y;
};

void skaitymas(int &n, int &m, uzsakymas A[]);
int atstumas(int x, int y);
void rezultatai(int imones, int km, string paskutine);

int main()
{
   string paskutine;
   int n, m, kiek;
   int imones = 0, km = 0;
   uzsakymas A[cmax];
   skaitymas(n, m, A);
   for(int i=0; i<n; i++)
   {
       if(km <= m)
       {
           kiek = atstumas(A[i].x, A[i].y);
           km += kiek;
           imones++;
           paskutine = A[i].pav;
       }
   }
   rezultatai(imones, km, paskutine);
   return 0;
}
void skaitymas(int &n, int &m, uzsakymas A[])
{
 char eil[cpav+1];
   ifstream in("U1.txt");
   in >> n >> m;
   in.ignore(80, '\n');
   for(int i=0; i<n; i++)
   {
       in.get(eil, cpav);
       A[i].pav = eil;
       cout << A[i].pav << endl; // čia bandau išsivesti pavadinima tačiau jis blogai nuskaitytas nežinau rodos viskas gerai, pirmos dvi eilutės geros, kitos nesamones rašo
       in.ignore(80, ' ');
       in >> A[i].x >> A[i].y;
       in.ignore(80, '\n');
   }
   in.close();
}
int atstumas(int x, int y)
{
   int temp = 0;
   if(x < 0) x = x*-1;
   if(y < 0) y = y*-1;
   temp += 2 * (x + y);
   return temp;
}
void rezultatai(int imones, int km, string paskutine)
{
   ofstream out("U1rez.txt");
   out << imones << " " << km << " " << paskutine;
   out.close();
}

 

U1.txt:

5 30

Siuntuva 2 3

Auda 3 –1

Kostisa –3 –2

Linga 3 0

Austuva –2 –4

Redagavo GReddyART
Nuoroda į pranešimą
Dalintis kituose puslapiuose

void skaitymas(int &n, int &m, uzsakymas A[])
{
 char eil[cpav+1];
   ifstream in("U1.txt");
   in >> n >> m;
   in>>ws;
   for(int i=0; i<n; i++)
   {
       in.get(eil, cpav);
       A[i].pav = eil;
       cout << A[i].pav << endl;

       in >> A[i].x >> A[i].y;
       cout<<A[i].x<<" "<<A[i].y<<endl;
       in>>ws;
   }
   in.close();
}

 

Bent man, tai gerai viską nuskaito. Tik minusus prie skaičių reikia pačiam įrašyti, o ne copy-paste.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

void skaitymas(int &n, int &m, uzsakymas A[])
{
 char eil[cpav+1];
   ifstream in("U1.txt");
   in >> n >> m;
   in>>ws;
   for(int i=0; i<n; i++)
   {
       in.get(eil, cpav);
       A[i].pav = eil;
       cout << A[i].pav << endl;

       in >> A[i].x >> A[i].y;
       cout<<A[i].x<<" "<<A[i].y<<endl;
       in>>ws;
   }
   in.close();
}

 

Bent man, tai gerai viską nuskaito. Tik minusus prie skaičių reikia pačiam įrašyti, o ne copy-paste.

 

Nesuprantu kaip tau gali veikt nes in.get() reikalauja prieš tai ignorinimo.

 

void skaitymas(int &n, int &m, uzsakymas A[])
{
 char eil[cpav+1];
   ifstream in("U1.txt");
   in >> n >> m;
   in>>ws;
   for(int i=0; i<n; i++)
   {
       in.ignore();
       in.get(eil, cpav);
       A[i].pav = eil;
       cout << A[i].pav << endl;

       in >> A[i].x >> A[i].y;
       cout<<A[i].x<<" "<<A[i].y<<endl;
       in>>ws;
   }
   in.close();
}

Tarkim cpav 15 tai duomenų failas turėtų būti toks.

 

5 30
Siuntuva       2 3
Auda           3 –1
Kostisa        –3 –2
Linga          3 0
Austuva        –2 –4

Redagavo TheSausis
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ą...