Avatar billede smackers Nybegynder
23. oktober 2005 - 18:11 Der er 4 kommentarer og
1 løsning

udskift getline(input stream, double) med hvad??

Disclaimer: C++ noob here...

Den abstracte class ImpactBody er base class for Asteroid og Comet classes.

Jeg har i min Asteroid class:

  ifstream& operator >> ( ifstream& is, Asteroid& a )
  {
      is >> dynamic_cast<ImpactBody&>( a );
      getline( is, a.debrisIndex );
 
      return is;
  }

, hvor debrisIndex er string type.


I Comet class har jeg lignende, men comaLength er af type double.

  ifstream& operator >> ( ifstream& is, Comet& c )
  {
      is >> dynamic_cast<ImpactBody&>( c );
      getline( is, c.comaLength );
 
      return is;
  }

Funktionen i Comet er kopieret fra Asteroid, men når jeg udskifter
  getline( is, a.debrisIndex );
med
  getline( is, c.comaLength );

får jeg flg. fejl ved kompilering:

error: no function: getline(std::basic_ifstream<char, std::char_traits<char> >&, double&)

,som jeg tolker som at c++ ikke har en getline(input stream, double) funktion, men jeg kan ikke komme på hvordan jeg kommer udenom.

mvh smackers
Avatar billede arne_v Ekspert
23. oktober 2005 - 18:15 #1
is >> c.comaLength;

måske
Avatar billede smackers Nybegynder
23. oktober 2005 - 19:08 #2
Fantastisk!

Ved du hvorfor:
  getline( is, a.debrisIndex );

blev brugt i det hele taget, og ikke bare:
  is >> debrisIndex;

?

Læg gerne som svar så du kan få nogle point også :)

mvh smackers
Avatar billede arne_v Ekspert
23. oktober 2005 - 19:16 #3
getline læser mellemrum

>> stopper ved første mellemrum

om det er relevant for dit program ved jeg ikke
Avatar billede arne_v Ekspert
23. oktober 2005 - 19:16 #4
svar
Avatar billede bertelbrander Novice
23. oktober 2005 - 19:57 #5
Vær dog opmærksom på at der sker sære ting hvis du bruger:
  double debrisIndex;
  std::cint >> debrisIndex;
Og brugeren tror at "Falgstang" er en gyldig double. Så vil programmet ende i en ret udefineret tilstand, hvorfra der ikke er nogen ordentlig vej ud.

Det er som regel bedre at læse en std::string, og selv konvertere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester