2016-04-14 14 views
-1

Ich versuche, ein Befehlszeilenargument zu erfassen und sie als String speichern aber ich einen Compiler-Fehler, wenn ich versuche, es in einen int zu konvertieren:Capture-Befehlszeilenargument und speichern Sie es

Der Fehler ist: Initialisierung macht Ganzzahl von Zeiger ohne eine Besetzung [standardmäßig aktiviert] char test = argv [1];

#include <stdio.h> 

int main(int argc, char** argv) 
{ 

char test = argv[1]; 
printf("%c\n", test); 

return 0; 
} 
+0

Ich bin versuchen, den Befehl -f – cyX

+1

zu erfassen Der Compiler ist richtig, versuchen Sie 'char * test = argv [1]; printf ("% s \ n", Test); '. –

+0

argv ist ein zweistufiger Zeiger vom Typ char. Daher ist 'argv [1]' ein 1-Level-Pointer vom Typ char, der nicht in einem einfachen Zeichen gespeichert werden kann. – jboockmann

Antwort

4

argv[1] ist eine Zeichenfolge halten und Sie versuchen, es in Zeichenvariable zu speichern, was Sie brauchen, ist ein Zeichenzeiger

char *test = argv[1]; 

und ausdrucken

printf("%s\n", test); 
+1

Danke, ich bin ein Retard :) – cyX

Verwandte Themen