|
| 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]
| |
|
|