C-Problem
Dietmar Guhe
dguhe at Mathematik.Uni-Bielefeld.DE
Tue Jun 8 11:49:08 CEST 1999
On Tue, 8 Jun 1999, Kai Windmöller wrote:
> Date: Tue, 08 Jun 1999 11:33:23 +0200
> From: Kai Windmöller <kai.windmoeller at rokd.de>
> To: OWL Linux User Group <linux at lug-owl.de>
> Subject: C-Problem
>
> Hallo zusammen
>
> ich muß zur Zeit einen Konverter schreiben und bin beim
> Kommandozeilenauswerten auf folgendeds Problem gestoßen.
>
> <OUTPUT>
> C:\Tools\TC20\OUT>convert ergre regwregwev w rweg wrtgw
>
> 0 #C:\TOOLS\TC20\OUT\CONVERT.EXE#-64#
> 1 ##-1#
> 2 #ergre#-34#
> 3 ##-1#
> 4 #regwregwev#-28#
> 5 ##-1#
> 6 #w#-17#
> 7 ##-1#
> 8 #rweg#-15#
> 9 ##-1#
> 10 #wrtgw#-10#
> 11 ##-1#
> C:\Tools\TC20\OUT>
> </OUTPUT>
>
> erzeug durch folgenden Code
>
> <CODE>
> int main (int argc, char argv[])
> ...
> for(i=0;i<(2*argc);i++)
> {
> printf("\n%3d #%s#%d#",i,argv[i],argv[i]);
> }
> </CODE>
>
> Nach meinem Verständnis von C und Kommandozeilen ist dieses Verhalten
> falsch.
Also ich mach da immer noch ein * mit rein, weil argv ein pointer auf
einen pointer ist.
Dann sieht das programm so aus:
#include <stdio.h>
int main (int argc , char* argv[]) {
int i;
for ( i=0 ; i < argc ; i++ ) {
printf("\n%3d #%s#%d#",i,argv[i],argv[i]);
}
}
und hat als output
./a.out ergre regwregwev w rweg wrtgw
0 #./a.out#536869328#
1 #ergre#536869336#
2 #regwregwev#536869342#
3 #w#536869353#
4 #rweg#536869355#
5 #wrtgw#536869360#
Die Zahlen sind natuerlich von System zu System verschieden.
Dietmar
______________________________________________________
Dietmar Guhe
http://www.mathematik.uni-bielefeld.de/~dguhe/
------------------------------------------------------
More information about the Linux
mailing list