美文网首页程序员
【C语言笔记】<三>Scanf函数

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

作者: 大基本功 | 来源:发表于2018-04-20 13:51 被阅读33次
    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函数

        本文链接:https://www.haomeiwen.com/subject/yymikftx.html