/ 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
at skrive en string til en fil
Fra : Stephan Henningsen


Dato : 08-10-01 13:09



Jeg vil gerne have at vide, hvordan jeg gemmer en string til
en fil. Jeg skal skrive nogle smaa, fast definerede
kommandoer ud til min serielport, og derefter straks
indlaese svaret fra den enhed, der sidder derude og maelder
tilbage.

Dette vil jeg goere ved foerst at sende strengen og derefter
indlaese fra samme fil i en ny streng, som jeg saa vil gemme
til en fil. Enheden snakker kun ved 300bps, saa jeg ved
ikke, om det kan give problemer med .read() og .write()?

Under alle omstaendigheder, virker nedenstaaende ikke. Det
er skrevet ud fra bedre erindring om, hvordan man arbejder
med c++-strenge og -filer (det er laenge siden..).

Jeg vil ogsaa gerne have lidt tip til, om min
exception-handling ser fornuftig ud.


Haaber nogen gider tage sig to minutter til det =)





#include "../config.h"

#include <iostream>
#include <fstream>
#include <string>
#include <stdexcept>

using namespace std;



#define CRLF "\x0D\x0A"



int
main ( int argc, char** argv )
{
fstream device;
int i;
string buf;


// Set exception mask.
device.exceptions ( ifstream::eofbit | ifstream::failbit |
ifstream::badbit );



try {
device.open ( DEVICE, ios::bin | ios::nocreate );
cout << "Device opened: " << DEVICE << endl;
}
catch ( const exception& e ) {
cerr << "Exception opening device " << DEVICE
<< ": " << e.what() << endl;
}


buf = "/?!" + CRLF;
cout << "buf is [" << buf << "]" << endl;
device.write( buf.c_str(), buf.length() );

device.close();
cout << "Device closed: " << DEVICE << endl;


return 0;
}




--
Stephan Henningsen /
/ tisprut productions[tm]


 
 
Stephan Henningsen (08-10-2001)
Kommentar
Fra : Stephan Henningsen


Dato : 08-10-01 13:14

On 08 Oct 2001 12:08:33 GMT, Stephan Henningsen wrote:
> buf = "/?!" + CRLF;

buf = string("/?!") + string(CRLF);

Men jeg troede at den godt kunne tage imod statiske
char-arrays.


--
Stephan Henningsen /
/ tisprut productions[tm]


Kim Nielsen (08-10-2001)
Kommentar
Fra : Kim Nielsen


Dato : 08-10-01 13:40

Stephan Henningsen wrote:
>
> On 08 Oct 2001 12:08:33 GMT, Stephan Henningsen wrote:
> > buf = "/?!" + CRLF;
>
> buf = string("/?!") + string(CRLF);
>

Tja måske kunne du:

fwrite(buf.c_str(), buf.size(), 0, fp);

/Kim

Stephan Henningsen (08-10-2001)
Kommentar
Fra : Stephan Henningsen


Dato : 08-10-01 17:20

On Mon, 08 Oct 2001 14:40:00 +0200, Kim Nielsen wrote:

>Tja måske kunne du:
>
>fwrite(buf.c_str(), buf.size(), 0, fp);

fwrite kaster vist ikke så vildt mange c++-exceptions =)


--
Stephan Henningsen /
/ tisprut productions[tm]


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste