我试图从输入中过滤掉整数,而不使用getchar()函数,确切地说,我试图从1x ^ 2 + 3x ^ 6 + 5x ^ 0读取系数和幂,这就是我最终编写该程序时,它不是完整的程序,应该是程序的一部分。
int main(){
int a , b, i = 0, n;
char c[2];
while(5){
if(scanf("%1s", c) == 1){
if( (n = atoi(c)) != 0 || (*c == 48) ){
printf("%d", n);
}
}
}
return 0;
}
那么正确的做法是什么?有哪些修改?谢谢:)
如果此1x^2 + 3x^6 + 5x^0
是您的准确输入,则可以使用scanf
进行扫描。
int powers[3];
int coefficients[3];
if (scanf("%dx^%d + %dx^%d + %dx^%d", &coefficients[0], &powers[0], &coefficients[1], &powers[1], &coefficients[2], &powers[2]) != 6)
{
exit(EXIT_FAILURE);
}