老师,我的可变参数的myScanf函数
代码:
#include <iostream>
#include <stdarg.h>
void myScanf(const char *format, int *pInt, ...) {
va_list ap;
int *p = NULL;
int num = 0;
int cnt = 0;
va_start(ap, pInt);
while (*format) {
if (*format == ' ') {
if (cnt == 0) {
*pInt = num;
} else {
p = va_arg(ap, int*);
*p = num;
}
num = 0;
cnt++;
} else {
num = num * 10 + *format - '0';
}
format++;
}
p = va_arg(ap, int*);
*p = num;
va_end(ap);
}
int main() {
int n, m, j;
myScanf("123 456 789", &n, &m, &j);
std::cout << n << " " << m << " " << j << std::endl;
return 0;
}
输出:
123 456 789
展开
作者回复: 可以打80分,稍微有点儿缺憾的就是:没有考虑负数的情况哦。d(^_^o)