Peršokti į turinį

Pagalbos dėl uždavinio ( blogai nuskaito duomenis )


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2955 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

#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);

int main()
{
    int n, m, kiek;
    uzsakymas A[cmax];
    skaitymas(n, m, A);
    for(int i=0; i<n; i++)
    {
        kiek = atstumas(A[i].x, A[i].y);
        //cout << kiek << endl;

    }
    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;
        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;
}

Išvedant pavadinimus: cout << A.pav << endl;

Būna gerai nuskaityti tik pirmi du, kitus rodo tuščius, gal kas žinote kur problema? rodos tikrai gerai padaręs, nerandu klaidų.

 

U1.txt:

5 30
Siuntuva                  2 3
Auda                      3 –1
Kostisa                  –3 –2
Linga                     3 0
Austuva                  –2 –4
Nuoroda į komentarą
Dalintis per kitą puslapį

Nereikia naudoti ignore() funkcijų, greičiausiai jos tau sumalė viską.

 

void skaitymas(int &n, int &m, uzsakymas A[])
{
    ifstream fd("U1.txt");
    fd >> n >> m;
    for(int i = 0; i < n; i++)
    {
        fd >> A[i].pav;
        cout << A[i].pav << endl;
        fd >> A[i].x >> A[i].y;
    }
    fd.close();
}
Sukompiliuotos programos rezultatas:

Siuntuva

Auda

Kostisa

Linga

Austuva

Process returned 0 (0x0) execution time : 0.022 s

Press any key to continue.

Redaguota , nario VytisJ
Nuoroda į komentarą
Dalintis per kitą puslapį

Nereikia naudoti ignore() funkcijų, greičiausiai jos tau sumalė viską.

 

void skaitymas(int &n, int &m, uzsakymas A[])
{
    ifstream fd("U1.txt");
    fd >> n >> m;
    for(int i = 0; i < n; i++)
    {
        fd >> A[i].pav;
        cout << A[i].pav << endl;
        fd >> A[i].x >> A[i].y;
    }
    fd.close();
}
Sukompiliuotos programos rezultatas:

 

 

Greičiausi, kad kompleris pjauna su tavo kodu man tas pats :/

Nuoroda į komentarą
Dalintis per kitą puslapį

void ivedimas (Imones A[], int &n, int &m)
{
    ifstream fd (CDfv);
    char simb[11];
    fd >> n;
    fd >> m;
    for (int i = 0; i < n; i++)
    {
        fd.ignore (80, '\n');
        fd.get(simb, sizeof simb);
        A[i].pavad = simb;
        fd >> A[i].x >> A[i].y;
    }
    fd.close();
}

Nesenai pats sprendžiau šitą uždavinį tai man viskas normaliai nusiskaito.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2955 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...