本节课程笔记:
一是对多个变量进行赋值,二是对非法输入的值做正确处理(处理方式了解即可,相关函数知识后期讲解),三是美化scanf代码加入输出说明。
1 /* 2 Name:scanf一次给多个变量赋值 3 Copyright:yangbin.org 4 Author: Yangbin 5 Date:2014年2月8日 20:57:44 6 Description:本课程笔记,一是对多个变量进行赋值,二是对非法输入的值做正确处理(处理方式了解即可,相关函数知识后期讲解),三是美化scanf代码加入输出说明。 7 */ 8 # include <stdio.h> 9 # include <stdlib.h> 10 int main(void) 11 { 12 int i,j; 13 14 printf("请输入两个数值,中间以空格分隔(不能包含汉字、符号、字母):"); 15 scanf("%d %d", &i, &j); //输入i和j的一个值 16 /*scanf("%d\n", &i); scanf输入时,切记不能使用\n; 17 非输入控制符必须原字符输出,如: 18 scanf("%d, %d", &i, &j) 输入本句时必须加 逗号; 19 */ 20 21 printf("i = %d, j = %d\n", i, j); //输出 i,j的值 22 23 system("pause"); 24 return 0; 25 } 26 /* 27 ---------------------- 28 该代码在Dev-C++ 4.9.9.2下编写 29 ------输出结果-------- 30 请输入两个数值,中间以空格分隔(不能包含汉字、符号、字母):2 3 31 i = 2, j = 3 32 --------总结--------- 33 使用scanf之前最好先使用printf提示用户以什么样的方式来输入 34 Scanf中尽量不要使用非输入控制符,尤其是不要用\n 35 应该编写代码对用户的非法输入做适当的处理【非重点】 36 while ((ch=getchar()) != '\n') 37 continue; 38 39 */
以下内容来自百度百科:
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
例:使用scanf函数输入数据。
#include<stdio.h> int main() { int a,b,c; printf("输入 a, b, c\n"); scanf("%d,%d,%d", &a, &b, &c); printf("a = %d b = %d c = %d\n", a, b, c); fflush(stdin); return 0; }
注意上面的scanf(“%d,%d,%d”,&a,&b,&c);中%d,%d,%d之间有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格,tab键或回车键将各个数据隔开
&a,&b,&c中的&是地址运算符,&a指a在内存中的地址。scanf的作用是:按照a,b,c的内存地址将a,b,c的值存进去。变量a,b,c的地址是在编译连续阶段分配的。
这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据是,数据之间不可以加逗号,只能是空格或tab键或者回车键——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,则在输入数据时需要加“,”——“2,3,4”.
转载于:https://www.cnblogs.com/Yang-bin/p/3541051.html