All pastes #450625 Raw Edit

sscanf

public cpp v1 · immutable
·published 2007-04-20 23:49 UTC
rendered paste body
sscanf(string[], format[], {Float,_}:...){	new		formatPos,		stringPos,		paramPos = 2,		paramCount = numargs();	while (paramPos < paramCount && string[stringPos])	{		switch (format[formatPos])		{			case '\0': break;			case 'i', 'd': setarg(paramPos, 0, strval(string[stringPos]));			case 'c': setarg(paramPos, 0, string[stringPos]);			case 'f': setarg(paramPos, 0, _:floatstr(string[stringPos]));			case 's':			{				new					end = format[formatPos + 1] == '\0' ? '\0' : ' ',					i;				while (string[stringPos] != end) setarg(paramPos, i++, string[stringPos++]);				setarg(paramPos, i, '\0');			}			default: goto skip;		}		while (string[stringPos] && string[stringPos] != ' ') stringPos++;		while (string[stringPos] == ' ') stringPos++;		paramPos++;		skip:		formatPos++;	}	return format[formatPos] ? 0 : 1;}