scanf的用法

来源:互联网 发布:手机直播源码 编辑:程序博客网 时间:2024/05/29 15:55

        说来惭愧,我学编程一年多了,但都没怎么认真学,记得去年教我们C语言课的老师是上了十五节课,每节课差不多俩小时,还有过几次上机课,可惜我课上虽然听的还算是比较认真,但课下却没怎么看书,最终结课时感觉自己学到的实在是不多,而且老师讲的吧,怎么说呢,不能说一点儿也不明白,但感觉老师讲的不是特别清楚,而且因为没有及时复习,所以后来又几乎全忘了,关于scanf的用法,我原本也只知道它是个输入函数,其他的就不太了解了,现在看了郝斌老师的C语言视频讲的scanf的用法,唉!他讲了不少我以前不知道的知识,现在我写出来,算是对自己的一个提醒吧!


scanf()【通过键盘将数据输入到变量中】

它有两种用法:

用法一: scanf“输入控制符”,输入参数);

功能:  将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。

例如:

# include <stdio.h> int main(void){    int i;    scanf("%d",&i);//如果输入123    printf("i=%d\n",i);//输出结果为i=123    return 0;}

用法二: scanf(“非输入控制符 输入控制符”,输入参数);

功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中(非输入控制符必须原样输入)。

例如:

# include <stdio.h> int main(void){    int i;    scanf("m%d",&i);//输入m123正确,输入123错误    printf("i=%d\n",i);//输入m123,输出结果为i=123    return 0;}

另外,需要注意的是,使用scanf之前最好再使用printf进行操作说明(即提示用户以什么样的方式进行输入)

例如:

# include <stdio.h> int main(void){    int i,j;     printf("请输入两个数,中间用空格或回车隔开:");    scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车    //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号(逗号是一个非输入控制符,非输入控制符必须原样输出)    printf("i=%d j=%d\n", i, j);     return 0;} 

还有,scanf中尽量不要使用非输入控制符,尤其不要使用 \n

例如:

# include <stdio.h> int main(void){    int i,j;     //使用scanf之前最好先使用printf进行一个操作说明,另外scanf中尽量不要使用非输入控制符,尤其不要用\n    printf("请输入两个值,中间用空格或回车隔开:");    //scanf("%d %d\n",&i,&j);//在scanf中不要使用\n,这样不好    scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车    //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号              逗号是一个非输入控制符,非输入控制符必须原样输出    printf("i=%d j=%d\n", i, j);     return 0;}

最后,为了防止当程序中有多个输入时,用户在前边的输入有误导致影响到下面的输入,我们可以在输入的后边添加一个

while ( (ch=getchar()) != '\n')

continue;   

例如:

# include <stdio.h> int main(void){    int i;    char ch;//添加字符数据     scanf("%d",&i);    printf("i = %d\n",i);     while ( (ch=getchar()) != '\n')//把用户前边的非法输入消除!!!    continue;                      //重点!    int j;    scanf("%d",&j);    printf("j=%d",j);     return 0;}

好了以上就是scanf的基本用法 ,第一次写博客感觉有些吃力,相信以后会好一些

 【所有代码均在window系统下VC6.0下运行通过】

(如有错误,敬请指正)

0 0