### scanf关键字 scanf标准函数可以从键盘得到用户输入的数字并记录到存储区里 这个标准函数是包含在stdio.h的头文件中的,因此需要在文件头部预处理这个头文件 #include <stdio.h> scanf函数调用语句里需要使用存储区的地址表示存储区 scanf函数调用语句里需要使用占位符表示存储区的类型 int snum = 0; scanf("%d", &snum); scanf函数调用语句双引号里不要写不是占位符的内容,否则就会出现一些不必要的麻烦 scanf("%d\n", &snum); // 这样的情况是不允许的 可以在一条scanf函数调用语句中获得多个数字 int num1 = 0; int num2 = 0; scanf("%d%d", &num1, &num2); // 默认使用空格来分割输入的,也就是说,输入多个整型的时候使用空格作为分隔符 例如:输入的数据类型不相同的时候 int num1 = 0; int num2 = 0; scanf("%d%d", &num1, &num2); 如果用户输入的第一个数(num1)不是整型类型,而输入的是浮点类型的话,那么num2就不会有变化 scanf标准函数工作的时候需要使用输入缓冲区。 用户在键盘上输入的内容首先进入输入缓冲区,然后才能进入存储区。 先进入输入缓冲区的数字必须先被处理。 如果用户输入数据的格式和计算机要求的格式不一样,则后面输入的数字就没有机会被处理了,就卡在了错误的数据类型的那个数字哪里。 /* 输入缓冲区演示 */ #include <stdio.h> int main(){ int num = 0, num1 = 0; printf("请输入一个数字:"); scanf("%d", &num); printf("数字是%d\n", num); printf("请输入一个数字:"); scanf("%d", &num1); printf("数字是%d\n", num1); return 0; } 返回结果: lanyulei@lanyulei-c:~/learn/biaoc/20180405/demo4$ ./a.out 请输入一个数字:1.1 数字是1 请输入一个数字:数字是0 以下两个语句可以把输入缓冲区里的第一个"\n"之前的内容和这个"\n"字符一起删除: scanf("%*[^\n]"); scanf("%*c");