|
| c++ læsning fra en txt fil Fra : Thomas |
Dato : 07-12-02 03:44 |
|
Hej
Jeg har en simpel highscoreliste i mit c++ dos program.
TXT filen har to linier:
Thomas
23413
Den vil jeg gerne indlæse:
#include <iostream>
#include <fstream>
#include <string>
ifstream input_fil("highscore.txt");
string rekordindehaver;
int rekord;
input_fil >> rekordindehaver;
input_fil >> rekord;
cout << "Highscoren indehaves af " << rekordindehaver << " med " << rekord
<< " points." << endl;
Hvilket fungerer ok indtil den skal vise tallet .....her viser den noget
helt forkert?
| |
Thomas Lykkeberg (07-12-2002)
| Kommentar Fra : Thomas Lykkeberg |
Dato : 07-12-02 11:51 |
|
On Sat, 7 Dec 2002 03:44:27 +0100, "Thomas" <asd@asd.de> wrote:
>Hej
>Jeg har en simpel highscoreliste i mit c++ dos program.
>
>TXT filen har to linier:
>Thomas
>23413
>
>Den vil jeg gerne indlæse:
>
>#include <iostream>
>#include <fstream>
>#include <string>
>ifstream input_fil("highscore.txt");
>string rekordindehaver;
> int rekord;
> input_fil >> rekordindehaver;
> input_fil >> rekord;
> cout << "Highscoren indehaves af " << rekordindehaver << " med " << rekord
><< " points." << endl;
>
>Hvilket fungerer ok indtil den skal vise tallet .....her viser den noget
>helt forkert?
Det er fordi 23413 er en "string". Prøv at ændre rekord til en string
type. Du kan konverterer rekord til en int bagefter.
/Thomas
| |
Thomas (07-12-2002)
| Kommentar Fra : Thomas |
Dato : 07-12-02 12:26 |
|
Hej Thomas
Tak for hjælpen. Jeg har forsøgt at konverterer rekord til int vha. følgende
metoder:
int points = int(rekord);
//error C2440: 'type cast' : cannot convert from 'class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >' to 'int
int points = atoi(rekord);
//error C2664: 'atoi' : cannot convert parameter 1 from 'class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >'
//to 'const char *' No user-defined-conversion operator available
that can perform this conversion, or the operator cannot be called
int points = strtol(rekord,NULL,10);
//error C2664: 'strtol' : cannot convert parameter 1 from 'class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >
Men uden held. Hvad gør jeg forkert?
"Thomas Lykkeberg" <Fornavn.Efternavn@privat.dk> wrote in message
news:4lk3vuojq1hbjdpei7raq9hptfpa6sdbnb@4ax.com...
> On Sat, 7 Dec 2002 03:44:27 +0100, "Thomas" <asd@asd.de> wrote:
>
> >Hej
> >Jeg har en simpel highscoreliste i mit c++ dos program.
> >
> >TXT filen har to linier:
> >Thomas
> >23413
> >
> >Den vil jeg gerne indlæse:
> >
> >#include <iostream>
> >#include <fstream>
> >#include <string>
> >ifstream input_fil("highscore.txt");
> >string rekordindehaver;
> > int rekord;
> > input_fil >> rekordindehaver;
> > input_fil >> rekord;
> > cout << "Highscoren indehaves af " << rekordindehaver << " med " <<
rekord
> ><< " points." << endl;
> >
> >Hvilket fungerer ok indtil den skal vise tallet .....her viser den noget
> >helt forkert?
> Det er fordi 23413 er en "string". Prøv at ændre rekord til en string
> type. Du kan konverterer rekord til en int bagefter.
>
> /Thomas
>
| |
Igor V. Rafienko (07-12-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 07-12-02 15:34 |
|
[ Thomas Lykkeberg ]
[ ... ]
> >Hvilket fungerer ok indtil den skal vise tallet .....her viser den noget
> >helt forkert?
>
> Det er fordi 23413 er en "string". Prøv at ændre rekord til en
> string type. Du kan konverterer rekord til en int bagefter.
Eh?
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Igor V. Rafienko (07-12-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 07-12-02 15:39 |
|
[ asd@asd.de ]
[ ... ]
> TXT filen har to linier:
> Thomas
> 23413
[ ... ]
> string rekordindehaver;
> int rekord;
> input_fil >> rekordindehaver;
> input_fil >> rekord;
[ ... ]
> Hvilket fungerer ok indtil den skal vise tallet .....her viser den
> noget helt forkert?
Nøyaktig _hva_ går galt? Koden over skulle virke helt fint (med et
lite forbehold -- hvis INT_MAX er mindre enn det tallet du prover å
lese, så blir utskriften fra programmet feil (iallfall i forhold til
hva en skulle forvente)).
(En annen ting er at det er lurt å sjekke stream state etter en input
operasjon).
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Claus Rasmussen (07-12-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 07-12-02 23:47 |
|
Thomas wrote:
> Hvilket fungerer ok indtil den skal vise tallet .....her viser den noget
> helt forkert?
Hvad virker forkert ? Vis hvad der helt præcist sker, ellers kan
vi ikke hjælpe dig. Jeg har prøvet at køre dit program på min
maskine, og her virker det perfekt.
-Claus
| |
|
|