/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Læsning af fil i C++
Fra : Bertel Lund Hansen


Dato : 02-08-02 11:59

Hej alle

Jeg har glemt for meget her i ferien. Jeg har brug for at få
opfrisket hvordan jeg i CPP åbner en fil til læsning og til
skrivning så jeg kan benytte cin og cout. Jeg kender
principperne, men jeg kan ikke finde den præcise opskrift i mine
bøger, og de eksempler jeg har fundet i "C++ from the Beginning"
kan ikke compileres.

Kan det passe at man skal inkludere en fil der hedder
<fstream.h>?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

 
 
Igor V. Rafienko (02-08-2002)
Kommentar
Fra : Igor V. Rafienko


Dato : 02-08-02 13:04

[ Bertel Lund Hansen ]

[ snip ]

> Jeg har glemt for meget her i ferien.


Tydeligvis.


> Jeg har brug for at få opfrisket hvordan jeg i CPP åbner en fil til
> læsning


std::ifstream ifs( "datafile" );


> og til skrivning så jeg kan benytte cin og cout.


std::ofstream ofs( "outfile" );

"så du kan benytte cin og cout" -- huh? std::cin og std::cout er
allerede åpne for hhv. lesing og skriving. Eller ønsker du å sette en
annen fil istedenfor cin/cout (aka redirection)? Hva er det det du
egentlig vil?

[ snip ]


> Kan det passe at man skal inkludere en fil der hedder
> <fstream.h>?


#include <fstream>





ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
            -- pederst på irc

Bertel Lund Hansen (02-08-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 02-08-02 14:07

Igor V. Rafienko skrev:

>#include <fstream>
>std::ifstream ifs( "datafile" );

Det havde jeg prøvet, men så er min compiler fejlbehæftet
(BCC5.5). Den skriver:

   Could not find a match for
   ifstream::basic_ifstream(string) in function main().

Programstart:

#include <iostream>
#include <fstream>

using namespace std;

const string sourcefile = "Opera.adr";
const string targetfile = "Hotlist.html";


int main() {
   ifstream ifs( sourcefile );
   ofstream ofs( "outfile" );
   ...


--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Thomas Krog (02-08-2002)
Kommentar
Fra : Thomas Krog


Dato : 02-08-02 14:12

> const string sourcefile = "Opera.adr";
> const string targetfile = "Hotlist.html";
>
>
> int main() {
> ifstream ifs( sourcefile );
> ofstream ofs( "outfile" );

Det er fordi den ikke implicit kan konvertere fra std::string til til char*.
Du kan bruge std::string::c_str():
int main() {
ifstream ifs( sourcefile.c_str() );
ofstream ofs( "outfile" );




Bertel Lund Hansen (02-08-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 02-08-02 14:24

Thomas Krog skrev:

>> ifstream ifs( sourcefile );
>> ofstream ofs( "outfile" );

>Det er fordi den ikke implicit kan konvertere fra std::string til til char*.

Åh. Er det en fejl?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Thomas Krog (02-08-2002)
Kommentar
Fra : Thomas Krog


Dato : 02-08-02 14:58


"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:tt1lku8oeh7ab5lfnc2s3n6qbk3hepvpbb@news.telia.dk...
> Thomas Krog skrev:
>
> >> ifstream ifs( sourcefile );
> >> ofstream ofs( "outfile" );
>
> >Det er fordi den ikke implicit kan konvertere fra std::string til til
char*.
>
> Åh. Er det en fejl?

nej, sådan er c++ standarden - det er gjort for at give programmøren bedre
kontrol over hvad der skal ske (ellers kan der nemt komme til at ske nogle
implicitte konverteringer man ikke lige havde taget højde for, se fx item 5
fra more effective c++)



Igor V. Rafienko (02-08-2002)
Kommentar
Fra : Igor V. Rafienko


Dato : 02-08-02 15:07

[ Bertel Lund Hansen ]

[ snip ]

> const string sourcefile = "Opera.adr";
> const string targetfile = "Hotlist.html";
>
>
> int main() {
>    ifstream ifs( sourcefile );
>    ofstream ofs( "outfile" );


Dette er en trist konsekvens av en dårlig design. _Dessverre_ kan ikke
en [io]fstream ta et std::string argument. Kun const char*.





ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
            -- pederst på irc

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste