maik87
Goto Top

int in char, ohne Umwandlung in ASCII-Zeichen

Hallo,
folgendes Problem ist gegeben, vllt habt ihr ja eine Idee:

#define ZEILENLAENGE 120

system("mode con cols=ZEILENLANGE");

Klar, ZEILENLAENGE wird nicht ersetzt, weil es in den Anführungsstrichen steht. Bloß wie kann ich es sonst machen?? Eine Verkettung (strcat) geht auch nicht, weil das wohl nur für char ist, meine ZL aber ein int ist. Gibt es auch so einen Befehl der alle Typen kann oder hat wer noch eine andere Idee??

Content-Key: 54006

Url: https://administrator.de/contentid/54006

Printed on: April 23, 2024 at 22:04 o'clock

Member: Guenni
Guenni Mar 14, 2007 at 18:39:18 (UTC)
Goto Top
@Maik87

Hi,

vielleicht nur 'n Schreibfehler?

#define ZEILENLAENGE 120 <-- mit "AE"

system("... ZEILENLANGE") <-- nur mit "A"

Wenn man mit #define eine Konstante vereinbart, ist das eigentlich schon
ein Typ, der alles kann, da im Quellcode lediglich eine Textersetzung ohne Rücksicht
auf Datentyp vorgenommen wird.

Als Beispiel:

#define MAX(x,y) x<y?y:x

MAX(Ausdruck1,Ausdruck2) gibt den jeweils größeren Wert zurück, egal ob int oder char.

Konstanten vereinbart man normalerweise mit...

const DATENTYP KONSTANTE=WERT

... heißt:

const int ZEILENLAENGE=120;

Wäre, was mir jetzt so einfällt.

Gruß
Günni
Member: Maik87
Maik87 Mar 15, 2007 at 21:43:41 (UTC)
Goto Top
vielleicht nur 'n Schreibfehler?

#define ZEILENLAENGE 120 <-- mit
"AE"

system("... ZEILENLANGE") <--
nur mit "A"

Nein, war einfach nur in Eile getippt, im Code ist es richtig.

Wenn man mit #define eine Konstante
vereinbart, ist das eigentlich schon
ein Typ, der alles kann, da im Quellcode
lediglich eine Textersetzung ohne
Rücksicht
auf Datentyp vorgenommen wird.

Stimmt, geht aber nur, wenn diese Konstante nicht in einem String, also zwischen zwei Anführungsstrichen, steht. Tut Sie das, überliest der Präprozessor das.


Konstanten vereinbart man normalerweise
mit...

const DATENTYP KONSTANTE=WERT

... heißt:

const int ZEILENLAENGE=120;

Bringt nichts, da der in dem String keine Variablen akzeptiert.


Wäre, was mir jetzt so einfällt.


vielen Dank für deine Mühe.


Ich kann Morgen sicherlich eine Lösung posten, da mein Kollege meint, er habe eine passende Funktion gefunden, die ich Morgen bekomme. Habe mir vorerst wie folgt behofen:

char char_in_int(int ziffer)
{
switch (ziffer)
{
case 1:
return '1';
break;

(...)
}
}
Member: Maik87
Maik87 Mar 22, 2007 at 16:15:48 (UTC)
Goto Top
hallo nochmal,
folgende lösung ist soooo simpel

int_var=atoi(char_var)

und

char_var=itoa(int_var)

So werden die Zahlen 1zu1 übertragen, ohne dass sie als ASCII-Wert angesehen und umgewandelt werden.
Member: Guenni
Guenni Mar 23, 2007 at 18:27:10 (UTC)
Goto Top
@Maik87

Hi,

wieder was dazugelernt. Dank!

Grüße
Günni