Falsche Compilierung

Hallo! Liebe wer-weiss-was Gemeinde
Wenn ich folgendes Programm übersetze

void main(int argc,char *argv[])
{
printf („ABCD EFG-!???7-0X?0\n“);
printf („ABCD EFG-???-0X?0\n“);
exit(0);
}

sieht das Ergebnis so aus
ABCD EFG-!???7-0X?0
ABCD EFG-!??~0X?0
warum werden in der zweiten Ausgabe die zwei Fragezeichen und der Strich durch ~ ersetzt
Habe keine Beschreibung für dieses Verhalten gefunden.
Der Text ist schon im übersetzten Code falsch,
wird also nicht durch printf verursacht.
Als Compiler benutze ich Microsoft Version 6.00A oder Visual C++ 6.0

Vielen Dank für eure Antworten

G.F.

Hallo G.F.,

Schau mal unter dem Stchwort „trigraph sequences“ nach.

Die wurden in ANSI-C definiert, weil es mit manchen Zeichensätzen Probleme gibt.

??= = #
??/ = \
??’ = ^
??( = [
??) = ]
??! = |
?? = }
??- = ~

printf („ABCD EFG-!???7-0X?0\n“);
printf („ABCD EFG-!?? ??- 0X?0\n“);

sieht das Ergebnis so aus
ABCD EFG-!???7-0X?0
ABCD EFG-!??~0X?0

MfG Peter(TOO)

Danke, das wars
Danke, das wars
Gruß
G.F.