【C语言笔记】<三>Scanf函数

Scanf函数介绍
  • scanf函数是一个阻塞式函数:程序会停在Scanf函数出现的地方,直到接收到的数据才会执行后面的代码
  • scanf函数原型包含在标准输入输出头文件"stdio.h"中,用于接收键盘输入的内容
  • 格式:scanf("%d",&num)
int main(int argc, const char * argv[]) {
// 1.定义变量
    int number;
    // 2.利用scanf函数接收用户输入的数据
    scanf("%i", &number);// 注意: 必须告诉scanf函数变量的详细地址, 才能存储用户输入的数据
    // 3.输出接收到的数据
    printf("number = %i", number);
 return 0;

    // 0.提示用户输入数据
    printf("亲, 请输入两个数字, 以回车键结束\n");
    // 1.定义两个变量保存用户输入的数据
    int num1, num2;
    // 2.利用scanf接收用户输入的数据
    // 注意: 利用scanf接收多个数据的时候, 输入的内容要求和"格式化字符串"中的一模一样
    // 如果输入的数据与格式化字符串中的不匹配, 那么scanf函数会自动终止
//    scanf("%i,%i", &num1, &num2);
    // 如果多个数据之间没有其它字符, 那么可以利用 空格, 回车, table来作为分隔
    // 但是, 如果格式化字符串中有%c除外
//    scanf("%i%i", &num1, &num2);
    char charValue;
    // 输入: 123-->num1, a -->charValue, 456-->num2
    // 技巧: 无论想接收什么类型的数据, 只要有需要一次性接收多个, 就给每一个数据之间加上固定的符号作为分隔符(例如: ,)
    scanf("%i-%c-%i", &num1, &charValue, &num2);
    
    // 3.将接收到的两个数相加
//    int result = (num1 + num2);
    
    // 4.输出两个数验证结果
//    printf("result = %d", result);
    
    printf("num1 = %i, char = %c , num2 = %i", num1, charValue, num2);
     */
    
    // 3.\n问题
    int number, number2;
    // \n代表换行
    // 如何告诉scanf函数我们输入完毕? 回车 == \n
    // 因为回车是scanf的结束符, 所以不能在scanf的格式化字符串末尾写上\n
    // 如果不小心把\n放到了scanf格式化字符串的末尾, 也可以破, 原样输入或输入一个不匹配的类型
    scanf("%i\n%i\n", &number, &number2);
    printf("number = %i , number2 = %i\n", number, number2);

}
Scanf函数的实现原理
int main(int argc, const char * argv[]) {
    
    // 添加断点快捷键: command + \
    
    // 1.提醒用户
//    printf("请输入两个整数 , 整数之间用逗号隔开, 使用回车结束\n");
    // 2.定义变量保存用户输入的数据
    int num1, num2;
    char charValue;
    // 3.接收用户输入的数据
    // num1 = 123, charValue = + , num2 = 456
    scanf("%i%c%i", &num1, &charValue, &num2);
    // 4.求差
//    int result = num1 - num2;
    // 5.输出验证
//    printf("result = %i\n", result);
    printf("num1 = %i, cahrValue = %c, num2 = %i\n", num1, charValue, num2);
    
    // 用户输入-->输入缓冲区-->scanf
    
    char charValue2;
    int num3;
    // scanf只要输入缓冲区中有内容, 就不会要求用户输入数据
    scanf("%c%i", &charValue2, &num3);
    printf("charVaue2 = %c, num3 = %i\n", charValue2, num3);
    
    return 0;
}

你可能感兴趣的:(【C语言笔记】<三>Scanf函数)