2016-05-24 7 views
-5

Mein Code ist wie in c folgt:Codeblocks anzeigt nicht die Programmargumente richtig

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc,char *argv[]) 
{ 
    int i; 
    for (i=0;i<argc;i++) 
    { 
     printf("Hello world! The arguments are %d, argc is %d and the string is %s\n",argc,i,argv); 
    } 

    return 0; 
} 

ich nicht in der Lage bin Argumente, um zu sehen richtig in der Ausgabe. Es kommt irgendwie verschlüsselt.

Ich ging zu Projekten-> Programm Argumente setzen. Es funktioniert aber nicht. Bitte helfen Sie?

+0

'argv' ist nicht' char [] 'es ist ein Zeiger auf' char [] '. –

+1

Warum erwarten Sie, dass Ihr Programm alle Argumente anzeigt? Es zeigt _argc_ mal dasselbe an. –

Antwort

2

Sie drucken einen Zeiger auf Zeiger, wie der Compiler Sie sagt:

test.c:12:9: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char **’ [-Wformat=] 
     printf("Hello world! The arguments are %d, argc is %d and the string is %s\n",argc,i,argv); 
     ^

argv ein Array von Zeigern ist und Sie die Zeichenfolge, die von jedem Element des Arrays darauf drucken:

Korrigierter Code:

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc,char *argv[]) 
{ 
    int i; 
    for (i=0;i<argc;i++) 
    { 
     printf("Hello world! The arguments are %d, argc is %d and the string is %s\n",argc,i,argv[i]); 
    } 

    return 0; 
} 
Verwandte Themen