Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define unformat(%0) strdel(%0, 0, strfind(%0, " ") + 1)
- stock scanf(string[], formatype[], {Float,_}:...){
- if(string[0] == EOS || formatype[0] == EOS)
- return true;
- #if !defined int
- #define int::<%0> static %0; %0 = 0
- #define char::<%0><%1> static %0[%1]; %0[0] = '\0'
- #define RESETSTR(%0) %0[0] = '\0'
- #endif
- #define idx (0)
- int::<_per>;
- int::<_arg>;
- char::<_sval><128>;
- for(_per = -1, _arg = 2; (formatype[++_per] ^ '\0'); ){
- _arg = (!_per) ? ( 2 ) : (_arg + 1);
- switch(formatype[_per]){
- case 'i', 'd':
- {
- new _finded = strfind(string, " ");
- if(_finded != -1){
- strmid(_sval, string, 0, _finded);
- strdel(string, 0, _finded + 1);
- }else{
- format(_sval, 128, string);
- }
- setarg(_arg, idx, strval(_sval));
- }
- case 's': // strings textos
- {
- for(new i; string[i]; ++i){
- setarg(_arg, i, string[i]);
- }
- }
- }
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement