2009-03-16, 00:23
  #1
Medlem
Kod:
#include <iostream>

using namespace std;

struct Player {
    
char name[25];
    
double difficulty;
    
double points[7];
};

istreamread_points istreamindouble d[] ) {

    
double tmp;
    
int i 0;
    while( 
in >> tmp ) {
        
d[i] = tmp;
        
cout << "tmp " << d[i] << endl;
        
i++;
    }
    return 
in;
}

istreamreadistreaminPlayer) {

    
in.getline(j.name25);
    
in >> j.difficulty;

    
read_pointsinj.points );

    return 
in;
}

int main() {

    
Player gamer[20];
    
Player tmp;
    
int i 0;
    while( 
read(cintmp) ) {

        
gamer[i] = tmp;
        
i++;
    }
    
0;

    
cout << "\n" << gamer[0].name << " "<< endl;
    
cout << gamer[0].difficulty << " "<< endl;

    return 
0;


Hej, har skrivit ett program hr som har i uppgift att lsa in en textfil via omdirigering och sedan lagra name, difficulty och points.

Jag har kommit s lngt som att man kan lagra name och difficulty, som grs via read() funktionen. Problemet som jag har bollat med ett tag r read_points() som inte fungerar. Har frskt gra en referensvariabel av "double d[]", men jag fr d felmeddelande. En sak som jag riktigt frstr r att nr jag anvnder read_points() kommer den att rensa vrden som fanns i name och difficulty.

Ngon som kan ge mig nn vgledande tips till hur jag kan f read_points, att ta in "in" strmmen och sedan plocka ut pongen och lagra det till arrayen points som finns i struct?
Citera
2009-03-16, 00:48
  #2
Medlem
Aritzos avatar
Testa att byta rubrik p trden frst och frmst.
Citera
2009-03-16, 02:42
  #3
Medlem
Nr man anvnder arrayer som parametrar mste man skicka med storleken p arrayen om man behver det (vilket du antagligen behver).
ven om detta inte hade varit fallet s kontrolleras det nd inte om man r utanfr arrayen och pillar. d[i] kan peka p vad fan som helst (adressen till d + i*(sizeof double)), allts mste du kontrollera att du inte r utanfr d[] med hjlp av storleken.
for(int i=0; i<size; i++)
{
in >> d[i];
}
borde funka bttre.
Du borde ocks gra en koll s inte i blir > 20 i main.
Citera
2009-03-16, 10:30
  #4
Medlem
Citat:
Ursprungligen postat av Aritzo
Testa att byta rubrik p trden frst och frmst.

frlt men jag visste inte vad jag skulle dpa trden till.

Citat:
Ursprungligen postat av snobbslakt
Nr man anvnder arrayer som parametrar mste man skicka med storleken p arrayen om man behver det (vilket du antagligen behver).
ven om detta inte hade varit fallet s kontrolleras det nd inte om man r utanfr arrayen och pillar. d[i] kan peka p vad fan som helst (adressen till d + i*(sizeof double)), allts mste du kontrollera att du inte r utanfr d[] med hjlp av storleken.
for(int i=0; i<size; i++)
{in >> d[i];}
borde funka bttre.
Du borde ocks gra en koll s inte i blir > 20 i main.

Tack fr tipset, det funkar nu bttre. Det som jag hakar mig p nu r att jag blir tvungen att anvnda pekare i main fr att skriva ut vrden som finns points[], annars skriver det ut olika hex nummer. Undrar ifall om man kan komma runt det p ngot sett?

Jag r inte speciellt hemma i pekare och referenser, s jag ber om urskt ifall frgan lter dumt ^^;
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in