string-ausgabe
-
liebe leute,
ich versteh da was nicht:
meine funktion gibt mir einen pointer zurück, der nach texteingabe in der funktion auf den richtigen wert (%d) zeigt, als string (%s) wird aber nichts ausgegeben.bitte um ratschläge,
lg andreashier der code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>#define SUCCESS -17
#define TRUE 1
#define FALSE 0int return_value;
int filename;
int checkParameter(char** argv);
int getfilename();
char **configfile[100];int main(int argc, char** argv)
{
return_value = getfilename(configfile);printf("\n %d \n", *configfile);
return return_value;
}int getfilename(char **configfile)
{
char filename[100];printf("enter filename: ");
fgets(filename, 100, stdin);
printf("\nfilename: %d", filename);
printf("\n------------------------------");
*configfile = filename;
return SUCCESS;
}
-
filename existiert nichtmehr wenn deine Funktion returned da es sich um eine lokale variable handelt...
Für was die globalen Variablen filename, configfile und return_value sind würd mich auch interessieren. Vor allem warum configfile ein Array aus hundert Pointern auf Pointer auf char ist
Lösung: Der Funktion getfilename() einen entsprechenden Buffer und dessen Länge übergeben.
-
die einfache art und weise funktioniert schonmal, das mit dem buffer muss ich mir ansehen.
blutiger anfänger
-
char configfile[100]; int main(int argc, char** argv) { return_value = getfilename(configfile); printf("\n %s \n", configfile); return return_value; } int getfilename(char *configfile) { printf("enter filename: "); fgets(configfile, 100, stdin); printf("\nfilename: %s", configfile); printf("\n------------------------------"); return SUCCESS; }
-
Naja, ich würds z.B. so machen:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define SUCCESS -17 int getfilename(char* configfile, size_t buffer_size) { puts("enter filename: "); fgets(configfile, buffer_size, stdin); puts("\n------------------------------"); return SUCCESS; } int main(int argc, char** argv) { char configfile[100]; int return_value = getfilename(configfile, 100); printf("\n %s \n", configfile); return return_value; }