# #define string



## Ozzy Ozborn (29. Januar 2008)

Hi,

ich bekomme es einfach nicht hin, einen String zu definieren, um ihn hinterher in einer Pfadangabe zu benutzen. So habe ich es probiert:

```
#define PFAD "pfad"
[...]
f.open(pfad+"/file.tmp", ios::out | ios::binary );
```
Als Fehlermeldung bekomme ich immer:

```
Fehler: ungültige Operanden der Typen »const char [8]« und »const char [10]« für binäres »operator+«
```

Wie muss es denn richtig heißen?

MfG, und vielen Dank, Ozzy


----------



## cesupa (29. Januar 2008)

Hallo,

du definierst deinen String als PFAD und nicht als pfad, C ist case sensitive.

Gruß
cesupa


----------



## Ozzy Ozborn (29. Januar 2008)

Hi,

sorry, Tippfehler von mir, es ist natürlich beides groß geschrieben. Also daran liegt es nicht!


----------



## XeoX (29. Januar 2008)

versuch es mal so:

```
#define PFAD pfad
[...]
f.open("PFAD/file.tmp", ios::out | ios::binary );
```

XeoX


----------



## MCoder (29. Januar 2008)

Hallo,

in C/C++ können Zeichketten nicht einfach verknüpft werden, indem man die Buffer addiert. Dafür benötigt man entsprechende Funktionen.
Bei C++ könnte man einen Stringstream nehmen:

```
#include <sstream>

#define PFAD "pfad"

stringstream sstr;
sstr << PFAD << "/file.tmp";
f.open(sstr.str().c_str(), ios::out | ios::binary );
```
Gruß
MCoder


----------

