求帮助求帮助

C语言 码拜 5年前 (2016-05-20) 446次浏览
大家谁帮本人看看C primes plus 里面这个话是什么意思?最好能够给本人举个例子,感激不尽感激不尽(PS:    假如第一个非空白字符是A而不是数字   这一段),不是很能够理解。求帮助求帮助
解决方案

30

30

1.通过scanf函数的返回值来验证输入的合法性。
2.scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
① 遇空格、“回车”、“跳格”键。
② 遇宽度结束。
③ 遇非法输入。
3.scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf(“%d %d”,&a,&b);
假如a和b都被成功读入,那么scanf的返回值就是2
假如只有a被成功读入,返回值为1
假如a和b都未被成功读入,返回值为0
假如遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.

10

仅供参考:

#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助求帮助
喜欢 (0)
[1034331897@qq.com]
分享 (0)