"..." funktionier nicht



  • Hallo,

    Was bedeutet eigentlich "..." wenn ich es so verwenden:

    bool Log(char* txt, ...)
    {
    }
    

    Ich frage deshalb, da bei mir folgender code nicht funktioniert (d.h. nur der 1. parameter wird ins logfile geschrieben):

    bool Log(char* txt, ...)
    {
    	va_list arg_list;
    	char text[255];
    
    	va_start(arg_list, txt);
    		vsprintf(text, txt, arg_list);						//Converts Symbols To Actual Numbers
    	va_end(arg_list);
    
    	if((logfile = fopen(fn, "a+")) == NULL)
    	{
    		return false;
    	}
    
    	fprintf(logfile, text);
    	putc('\n', logfile);
    
    	fclose(logfile);
    
    	return true;
    }
    

    lg.



  • das "..." bedeutet bei Funktionsparametern, dass sie noch weitere Parameter unbestimmter Anzahl und unbestimmten Types soweit ich weiß erhalten können.

    Wie bei printf(const char* format, ...)
    Die Parameter in der Funktion auszulesen ist dann natürlich auch möglich, einfach mal googlen 😉

    Edit: Ich sehe grad, du hast noch Code dazueditiert. Warum das nicht funktioniert kann ich dir nicht sagen, hab leider grad keine Zeit dazu.



  • Wie rufst du denn die Log() Funktion auf? vsprintf() erwarten die selben Formatangaben im zweiten Parameter wie alle anderen Funktionen der printf-Serie - wenn dort kein % vorkommt, ignoriert er nachfolgende Parameter.


Anmelden zum Antworten